electron踩坑之electron-winstaller安装报错

1,261 阅读1分钟

背景

最近由于业务需求,在摸索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