我正在使用Vue CLI 3和vue-cli-plugin-electron-builder
打包我的Vue Electron应用程序,但无法获得preload.js脚本进行电子工作。
主窗口
win = new BrowserWindow({
width: 800,
height: 600
webPreferences: {
nodeIntegration: false,
preload: path.join(__dirname, "/../src/preload.js") // works but window.electron.dialog in undefined
}
});
preload.js
const { dialog } = require("electron");
window.electron = {};
window.electron.dialog = dialog;
在我的Vue组件中始终未定义window.electron.dialog
-导入显然不起作用。请注意,window.electron
的定义正确。我一定很想念东西。
答案 0 :(得分:1)
将以下几行添加到文件 vue.config.js
中,如果该文件不存在,则在项目的根文件夹中创建一个
module.exports = {
//...
pluginOptions: {
electronBuilder: {
preload: 'src/preload.js',
// Or, for multiple preload files:
// preload: { preload: 'src/preload.js', otherPreload: 'src/preload2.js' }
}
}
//...
}
查看文档了解更多#preload-files
答案 1 :(得分:0)
解决方案比预期的要简单。在window.onload
事件中导入工作。
window.onload = () => {
const { dialog } = require("electron").remote;
window.electron = {};
window.electron.dialog = dialog; // now set properly
};