javascript-在 ElectronJS 应用程序中,无法访问渲染器进程中的 __dirname 变量
我现在正在尝试从“ Electron in Action ”一书中学习 ElectronJS(https://www.amazon.com/Electron-Action-Steve-Kinney/dp/1617294144/)。
我遇到困难的代码是我通过<script>加载到渲染器进程窗口中的 HTML 文件中的标签中的 JS 代码尝试访问__dirname变量(通常仅在节点中可用,但在 Electron 中可用,应该也可用于 Chromium 上下文)。
对于任何感兴趣的人,它是清单 2.8(第 28 页)。这是代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline'; connect-src *">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Bookmarker</title>
</head>
<body>
<h1>Hello from Electron</h1>
<p>
<button class="alert">Current Directory</button>
</p>
<script>
const button = document.querySelector('.alert');
button.addEventListener('click', ()=> {alert(__dirname);});
</script>
</body>
</html>
这是主进程的代码:
const {app, BrowserWindow} = require('electron');
let main_window = null;
app.on('ready',
() =>
{
console.log('Hello from Electron');
main_window = new BrowserWindow();
main_window.webContents.loadFile('app/index.html');
}
);
但它不起作用。在渲染窗口的开发人员控制台中,每次单击按钮时,都会出现错误,说明__dirname未定义。
我在下面附上了错误消息的屏幕截图: 错误日志
我该如何解决这个问题?提前致谢。