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.js
preload: isDevelopment ? process.cwd() + '/src/preload.js' : ''
},
});
这样在自己选择的 Vue
或者 React
中就可以使用 electron
的内置模块了
const {remote} = window.require('remote')
2、打包之后包找不到
问题描述:
有一些包由于依赖 CommonJS
协议,然后开发环境运行正常,但是一打包之后,一运行就发现提示 require('....')
找不到包模块。
解决:
npm i browserify -g
2. 在项目根目录新建一个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
下载了