electron | electron-packager打包问题汇总

来源:csdn博客 分类: 文章浏览史 发布时间:2020-06-07 00:21:28 最后更新:2020-06-07 浏览:3104
转载声明:
本文为摘录自“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超时,解决方法与上条相同。

php技术微信