从“@quasar/app” v1.5+开始,您可以受益于Electron预加载脚本,当您关闭Node集成时,该脚本非常有用 。
此预加载脚本可以让您从渲染线程(UI)将Nodejs内容注入到“window”全局中。 该脚本将在呈现线程之前在浏览器中运行。 无论您的Node集成设置如何,此文件都可以访问Nodejs。 因此,请谨慎使用!
如何启用
在/src-electron/main-process/
文件夹中,创建一个文件并将其命名为electron-preload.js
。 用您的预加载代码填充它。 然后编辑/src-electron/main-process/electron-main.js
, 在“webPreferences”部分附近:
// 文件: /src-electron/main-process/electron-main.js
// 在顶部添加:
import path from 'path'
// ...
function createWindow () {
// ...
mainWindow = new BrowserWindow({
// ...
webPreferences: {
nodeIntegration: process.env.QUASAR_NODE_INTEGRATION,
nodeIntegrationInWorker: process.env.QUASAR_NODE_INTEGRATION,
// 这就是神奇之处:
preload: path.resolve(__dirname, 'electron-preload.js')
}
})
WARNING
名称electron-preload.js
不能更改,否则Quasar不会检测到它,并且您的生产版本将失败。
/src-electron/main-process/electron-preload.js
内容示例:
window.electron = require('electron')
electron-preload.js的局限性
- Babel不会转译此文件。
- 此文件不能通过任何lint验证。
- 您无法导入带有相对路径的文件,因为它会原样复制到最终的应用程序包中。
- 在启动“quasar dev”命令之前,您必须已经创建了此文件,否则其中的任何更改都不会触发重新加载。