1、electron中怎么使用electron的内置模块
1、在项目src目录新建 preload.js 在里面写上
global.electron = require('electron');window.ipcRenderer = require('electron').ipcRenderer;window.remote = require('electron').remote;
2、在入口主进程文件中修改
function createWindow() {// Create the browser window.win = new BrowserWindow({width: 1000,height: 808,minWidth: 1000,minHeight: 808,webPreferences: {nodeIntegration: true, // 是否集成Node.jspreload: isDevelopment ? process.cwd() + '/src/preload.js' : ''},});
这样在自己选择的 Vue 或者 React 中就可以使用 electron 的内置模块了
const {remote} = window.require('remote')
2、打包之后包找不到
问题描述:
有一些包由于依赖 CommonJS 协议,然后开发环境运行正常,但是一打包之后,一运行就发现提示 require('....') 找不到包模块。
解决:
npm i browserify -g2. 在项目根目录新建一个index.js(这个名字自定),- 然后在文件内写项目中需要
require('....')的引入。 例如:
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");然后在项目中运行
browserify public/index.js > public/bundle.js(其中index.js为所有依赖的入口文件,bundle.js为browserify将需要依赖的包编译之后输出的文件)- 然后在入口HTML页面
<script src='bundle.js'></script>;
3、打包图标修改
找设计或者自己在晚上找 ico 格式的文件。然后命名为 main.ico ,放在跟 index.html 同级目录下
4、npm run dev 启动开发模式提示报错
问题描述:
由于 npm 默认下载 electron 是从 github 上下载,也就存在下载失败的问题。于是乎使用了 taobao 的 npm 源 。
但是设置完源下载之后,执行 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 源下载的 electron 的 ELECTRON_CUSTTOM_DIR 是不带 v ,也就导致找不到 electron
解决:
在自己的本地 .npmrc 文件中设置以下两个变量
ELECTRON_MIRROR="https://npm.taobao.org/mirrors/electron/"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 下载了
