安装和启动electron失败问题修复

1,511 阅读2分钟

安装electron失败

如果遇到报错为:electron install failed:unable to verify the first certificate 这个报错可以设置npm不验证https证书: npm config set strict-ssl false

由于国内网络原因,建议使用淘宝源;你可以使用nrm管理你的源或者直接单词设置,这里给出单次设置的例子

npm config set registry https://registry.npmmirror.com/
npm set electron_mirror http://npm.taobao.org/mirrors/electron/
npm set ELECTRON_MIRROR http://cdn.npm.taobao.org/dist/electron/

重新执行安装

 npm cache clean -f  
 // 先清除一下npm缓存并删除已经安装的node_modules文件
 npm cache clean -f

安装

npm install electron --save-dev

启动electron失败

启动你的应用可能会遇到如下报错:

throw new Error('Electron failed to install correctly, please delete node_modules/electron and try installing again')

原因这里不多做赘述,大家可以去修改如下代码: 1./node_modules/electron/extract-zip/index.js 这行代码做如下修改 修改前:

await pipeline(readStream, createWriteStream(dest, { mode: procMode })

修改后

await pipeline(readStream, createWriteStream(dest, { mode: procMode }),(err,val)=>{
    if(err){
        throw new Error(err)
    } else {
       return val
    }
})

image.png

备注:这里这么修改是因为这个pipeline方法失败后没有监听,导致失败被吞,代码停止执行,而外部无法拿到异常,导致后面的代码不会执行,大家可以自己来到这个文件夹执行npm run postinstall执行代码debug看看是不是也有这个问题。

2.还是这个文件 修改前

await this.extractEntry(entry)

修改后

 await this.extractEntry(entry)
 .then( val=>{
         console.log('----------------res-----------'),val
     })
 .catch(err=>{
         console.log('----------------------err----------------',err)
     }
 )

image.png 这里其实只是为了辅助打印一下,捕获错误。

3.上述代码修改后,需要在/node_modules/electron下执行 npm run postintall 最终会看/node_modules/electron 会生成一个path.txt文件(没错,开始失败的原因就是没有这个文件生成)

  1. 重新到项目根目录执行启动命令。

摸索了一下午才找到原因,网上有很多说让修改@electron中生成下载electron的url解决,但是现在最新的淘宝源下的下载链接已经不存在这个问题(大家可以自行debug,如果复现了这个下载问题,可以去修改这)