无星的electron之旅(二)——进程间通信

1,185 阅读1分钟

进程间通信用ipcRenderer,ipcMain官网写的很清楚

但问题在于,我使用vue-cli-plugin-electron-builder引入electron

想做进程间通信

import {ipcRenderer} from 'electron'

引入一直报错

原因如下

插件文档

方式一:Node Integration

# vue.config.js
module.exports = {
  pluginOptions: {
    electronBuilder: {
      nodeIntegration: true
    }
  }
}

方式二:预加载

1.在src下新建一个js

# ./src/preload.js

import { ipcRenderer } from 'electron'
window.ipcRenderer = ipcRenderer

2.修改vue.config.js

# ./vue.config.js
module.exports = {
  pluginOptions: {
    electronBuilder: {
      preload: 'src/preload.js',
    }
  }
}

3.修改主进程文件

# ./src/background.js

const win = new BrowserWindow({
  width: 800,
  height: 600,
  webPreferences: {
    nodeIntegration: process.env.ELECTRON_NODE_INTEGRATION,
    // 注意这一行,这一行是新增的
+   preload: path.join(__dirname, 'preload.js')
  }
})

4.使用

window.ipcRenderer即可