Electron预加载脚本

从“@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的局限性

  1. Babel不会转译此文件。
  2. 此文件不能通过任何lint验证。
  3. 您无法导入带有相对路径的文件,因为它会原样复制到最终的应用程序包中。
  4. 在启动“quasar dev”命令之前,您必须已经创建了此文件,否则其中的任何更改都不会触发重新加载。