再谈electron
之前写过electron的入坑文章,现在再把electron的坑再理一下。
安装平台的选择
如果在64位机器上开发32位应用,那么需要安装32位的electron。
npm install --arch=ia32 electron
electron-build打包也需要加上 --ia32
可以使用淘宝镜像
ELECTRON_MIRROR="https://cdn.npm.taobao.org/dist/electron/"
这些可以配置在npmrc文件里
arch=ia32
target_arch=ia32
disturl=https://npm.taobao.org/mirrors/atom-shell
runtime=electron
build_from_source=true
target=2.0.4
registry=https://registry.npm.taobao.org
electron_mirror=http://npm.taobao.org/mirrors/electron/
打包工具
建议配合electron-vue 或者 electron-webpack食用,webpack可以混淆代码,能够在一定程度上减少代码泄露的风险,同时减少体积。
本地依赖的坑
Windows环境 安装 windows-build-tools
基本可以搞定本地依赖。注意上面npmrc文件配置的target_arch 和 target(版本)。这和安装的electron要一样,否则会出问题。
本地依赖安装不了时先一步步确定问题
首先看看node-gyp装了没
再到本地依赖目录下执行 node-gyp 看是否正常
现在可以确定编译环境OK
再执行(参数按环境设置),写文章时,淘宝的镜像没有7.0以上的,可以使用下面官方的,比较慢一点
node-gyp rebuild --target=1.6.2 --arch=ia32 --target_arch=ia32 --dist-url=https://npm.taobao.org/mirrors/atom-shell --msvs_version=2015
node-gyp rebuild --target=1.6.2 --arch=ia32 --target_arch=ia32 --dist-url=https://electronjs.org/headers --msvs_version=2015
这一步能OK开发没问题,但是用electron-builder打包又不行了
貌似electron-builder 和 npm安装下载的gyp文件冲突?但是electron-builder下载巨慢。
如果一定要 electron-builder 来自动安装,那么需要加入
"postinstall": "electron-builder install-app-deps"
然后在“build”配置
"npmArgs":["dist-url=https://npm.taobao.org/mirrors/atom-shell/"],
"electronDownload":{
"mirror": "http://npm.taobao.org/mirrors/electron/",
"platform": "win32",
"arch": "ia32"
}
可以解决electron build 下载慢的问题。主要的问题还是electron 并不使用npm的配置。但是作为打包工具来说,这个比electron-package要好一点的。
也可以跳过打包前的安装本地依赖步骤步骤
"npmRebuild": false,
如果需要打包绿色版的electron 程序,可以配置 target 为portable
关于FFI
ffi 安装一直失败 这个时候 试试 ffi-napi 在node 12+ 上可用
尽量少点本地依赖,不同的模块需要的node 版本不一样,很难去兼容
electron build
打包时下载的文件重命名失败,可以手动下载重命名