背景
最近由于业务需求,在摸索electron,记录下踩到的坑。
由于需要引入32位dll,需要将node切换到32位,这时候安装@electron-forge/cli(版本号: 6.0.0-beta.57)出现报错,报错内容如下:
error xxx\node_modules\electron-winstaller: Command failed.
Exit code: 1
Command: node ./script/select-7z-arch.js
Arguments:
Directory: xxx\node_modules\electron-winstaller
Output:
Selecting 7-Zip for arch ia32
xxx\node_modules\electron-winstaller\script\select-7z-arch.js:16
原因
错误原因,由于@electron-forge/cli需要的@electron-forge/maker-squirrel(版本:6.0.0-beta.57)依赖electron-winstaller(5.0.0),具体配置可从@electron-forge/maker-squirrel的package.json配置文件中找到:
"optionalDependencies": {
"electron-winstaller": "^5.0.0"
}
在electron-winstaller(5.0.0版本)verdor目录下缺少需要依赖的32位库(7z-ia32.exe/7z-ia32.dll),相关issues: github.com/electron/wi…
解决方法
- 安装@electron-forge/cli时添加--ignore-scripts命令
yarn add @electron-forge/cli --ignore-scripts
-
下载对应的依赖库并拷贝到electron-winstaller/verdor目录下( github.com/electron/wi…)
-
修改名称为7z.dll/7z.exe