首页 > 解决方案 > 在 Electron 和 Vue 中加载预加载脚本

问题描述

我正在使用 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;

在我的window.electron.dialogVue 组件中始终未定义 - 导入显然不起作用。请注意,window.electron已正确定义。我肯定错过了什么。

标签: vue.jselectronvue-cli-3electron-builder

解决方案


将以下行添加到文件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


推荐阅读