electron | electron-packager打包问题汇总
转载声明:
本文为摘录自“csdn博客”,版权归原作者所有。
温馨提示:
为了更好的体验,请点击原文链接进行浏览
摘录时间:
2020-06-07 00:21:28
更新记录
2019/10/18 更新 权限不足 问题,添加改用electron-builder方法。
2019/11/21 更新 打包超时问题 问题,添加 修改系统变量 方法。
欢迎直接提问
为避免幸存者误差带来的困境,检验方法的普适性,欢迎大家在本文提出的方法行不通时,直接提问!
前言
electron-packager的使用非常简单,但在实际打包中却遇到了诸多问题,下面将逐一列举并分析。
operation not permitted
问题现象
打包时,npm首先需要下载electron内核到缓存文件夹下,此时读写文件夹会出现权限问题。
EPERM: operation not permitted, lstat 'C:\Users\XXXX\AppData\Local\Temp\electron-download-rtze3Z\electron-v6.0.9-win32-x64.zip'
解决方案
更换管理员用户
假如你所使用的用户不是管理员,那么打包时会遇到没有权限的问题,所以需要将当前用户提权到管理员权限或切换至管理员角色(注意:是用管理员用户登录,而不是使用管理员权限运行cmd)
改用electron-builder
若还未解决,请换用electron-builder。
经测试,使用electron-builder不会出现因下载prebuilder文件而出现的权限问题。(2019.10.22更新)
打包慢,无反应
问题现象
> electron-demo@1.0.0 pack X:\myElectronProj\electron-demo
> electron-packager . electron-client --win --out ../electron-client --arch=x64
electron-packager打包并不显示当前进度,也没有报错,但一直没有结果。
问题分析
electron-packager在当前机器的首次打包前,会下载electron的预编译文件至当前用户,而electron-prebuilder的默认源在国外,在网络不好的情况下,即便有代理,速度非常慢。
本问题的最大坑点在于,下载预编译文件的进度不显示在命令行。
解决方案
1. 修改npm镜像
首先,你可以更换阿里镜像源,全局执行如下npm脚本再重新打包
npm config set ELECTRON_MIRROR http://npm.taobao.org/mirrors/electron/
2. 修改系统环境变量
由于未知原因,electron-packger / electron-builder 在真实打包时并不识别npm的镜像地址,此时,你需要修改环境变量
变量名:
ELECTRON_MIRROR
变量值:
http://npm.taobao.org/mirrors/electron/
然后,再重启cmd,使环境变量生效,进行打包即可。
Error: read ECONNRESET
npm超时,解决方法与上条相同。