You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Electron-Packager打包无响应求助:如何解决打包停滞问题?

解决Electron打包停滞的问题

你遇到的这种electron-packager和Electron Forge打包都卡住的情况,我之前也碰到过好几次,大概率是网络、缓存或者权限相关的问题,给你几个亲测有效的解决方向:

一、优先排查网络与镜像源问题

Electron打包时需要下载对应版本的Electron二进制包,国内访问GitHub镜像经常不稳定,这是最常见的卡住原因:

  • 临时设置npm的Electron镜像源,在CMD里先执行:
    set ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/
    
    然后再运行你的打包命令npm run package-win
  • 或者长期配置:在项目根目录创建.npmrc文件,写入:
    electron_mirror=https://npmmirror.com/mirrors/electron/
    

二、清理缓存,重置依赖

缓存损坏也会导致打包卡住,按顺序执行以下命令:

  • 清理npm缓存:
    npm cache clean --force
    
  • 删除项目的node_modules文件夹和package-lock.json文件
  • 重新安装依赖:
    npm install
    
  • 清理Electron的本地缓存:找到系统里的Electron缓存目录(Windows一般是C:\Users\<你的用户名>\AppData\Local\electron\Cache),删除里面的所有文件

三、调整打包命令与权限

  • 先简化你的打包命令,去掉复杂参数,先测试最基础的打包是否能成功:
    electron-packager . --platform=win32 --arch=ia32 --out=test-build
    
    如果成功,再逐步添加--asar--prune等参数排查哪个参数出问题
  • 管理员权限打开CMD再执行打包命令,避免权限不足导致文件写入停滞
  • 给打包命令加上--verbose参数,查看详细日志,定位卡住的具体步骤:
    electron-packager . electron-serialport --overwrite --asar --platform=win32 --arch=ia32 --prune=true --out=release-builds --version-string.CompanyName=CE --version-string.FileDescription=CE --version-string.ProductName="CryptoApp" --verbose
    

四、其他排查方向

  • 关闭电脑上的杀毒软件、防火墙或者VPN,这些工具可能会拦截Electron的下载或文件操作
  • 检查你的Electron版本和electron-packager版本是否兼容:你用的electron@11.1.0electron-packager@15.2.0理论上是兼容的,但如果还是有问题,可以尝试把electron-packager升级到最新稳定版,或者降级到匹配的版本
  • 对于Electron Forge的默认应用卡住问题,执行npx electron-forge clean清理缓存后再尝试打包

你的package.json参考

{
  "name": "exerunning",
  "version": "1.0.0",
  "description": "",
  "main": "main.js",
  "scripts": {
    "start": "electron .",
    "package-win": "electron-packager . electron-serialport --overwrite --asar --platform=win32 --arch=ia32 --prune=true --out=release-builds --version-string.CompanyName=CE --version-string.FileDescription=CE --version-string.ProductName=\"CryptoApp\""
  },
  "author": "Patrick Voorhoeve",
  "license": "ISC",
  "devDependencies": {
    "electron": "^11.1.0",
    "electron-packager": "^15.2.0"
  }
}

内容的提问来源于stack exchange,提问作者Patrick Voorhoeve

火山引擎 最新活动