1、electron中怎么使用electron的内置模块

1、在项目src目录新建 preload.js 在里面写上

  1. global.electron = require('electron');
  2. window.ipcRenderer = require('electron').ipcRenderer;
  3. window.remote = require('electron').remote;

2、在入口主进程文件中修改

  1. function createWindow() {
  2. // Create the browser window.
  3. win = new BrowserWindow({
  4. width: 1000,
  5. height: 808,
  6. minWidth: 1000,
  7. minHeight: 808,
  8. webPreferences: {
  9. nodeIntegration: true, // 是否集成Node.js
  10. preload: isDevelopment ? process.cwd() + '/src/preload.js' : ''
  11. },
  12. });

这样在自己选择的 Vue 或者 React 中就可以使用 electron 的内置模块了

  1. const {remote} = window.require('remote')

2、打包之后包找不到

问题描述:

有一些包由于依赖 CommonJS 协议,然后开发环境运行正常,但是一打包之后,一运行就发现提示 require('....') 找不到包模块。

解决:
  1. npm i browserify -g2. 在项目根目录新建一个 index.js(这个名字自定),
  2. 然后在文件内写项目中需要 require('....') 的引入。
  3. 例如:

    window.AdmZip = require('adm-zip') || window.require('adm-zip');

    window.fs =require("original-fs") || window.require("original-fs");

    window.path = require("path") || window.require("path") ;

  4. 然后在项目中运行 browserify public/index.js > public/bundle.js(其中 index.js 为所有依赖的入口文件,bundle.jsbrowserify将需要依赖的包编译之后输出的文件

  5. 然后在入口HTML页面 <script src='bundle.js'></script>;

3、打包图标修改

找设计或者自己在晚上找 ico 格式的文件。然后命名为 main.ico ,放在跟 index.html 同级目录下

4、npm run dev 启动开发模式提示报错

问题描述:
由于 npm 默认下载 electron 是从 github 上下载,也就存在下载失败的问题。于是乎使用了 taobaonpm 源 。
但是设置完源下载之后,执行 npm run dev 提示 throw new Error('Electron failed to install correctly, please delete node_modules/electron and try installing again')

原因:
默认情况下,ELECTRON_CUSTTOM_DIR 被设置为 v$VERSION ,而 electron/get 查找规则是
url= ELECTRON_MIRROR + ELECTRON_CUSTOM_DIR + '/' + ELECTRON_CUSTOM_FILENAME
通过 taobao 源下载的 electronELECTRON_CUSTTOM_DIR 是不带 v ,也就导致找不到 electron

解决:
在自己的本地 .npmrc 文件中设置以下两个变量

  1. ELECTRON_MIRROR="https://npm.taobao.org/mirrors/electron/"
  2. ELECTRON_CUSTOM_DIR="{{ version }}"

解决问题原因: 使用 {{ version }} 占位符。 例如,version-{{ version }} 被解析为 version-5.0.0, {{ version }} 被解析为 5.0.0, v{{ version }} 与默认值等价
改完上述配置之后,重新下载 electron 就会从例如 https://npm.taobao.org/mirrors/electron-v8.0.0-linux-x64.zip 下载了