目录

electron-forge踩坑记录

electron-forge踩坑记录

一、项目使用pnpm包管理工具,

安装 pnpm install –save-dev @electron-forge/cli 后。
使用 pnpm dlx electron-forge import 进行转换时,报错:electron-squirrel-startup包安装失败

https://i-blog.csdnimg.cn/direct/2e908433b5284141a14da98377604152.png

尝试方案:

  • 挂VPN代理尝试也无效
  • 升降Node版本
  • 指定下载源

注: 国内地址失效( )

  • 在项目根目录添加 .npmrc 文件,指定下载源地址
  • 内容:electron_mirror=https://npmmirror.com/mirrors/electron/

经查询 pnpm安装可能会存在问题。npm 正常,

二、使用npm 替换 pnpm包工具

1、安装依赖,其它包又出现版本冲突

https://i-blog.csdnimg.cn/direct/52d724ae07cf4d458b57fc3880b4c6ce.png

解决方案:使用pinia-plugin-persistedstate 替代 pinia-plugin-persist缓存插件

2、安装打包依赖

npm install –save-dev @electron-forge/cli
npx electron-forge import

https://i-blog.csdnimg.cn/direct/13cfaf52a06a4d8d8296df54cd4b0ff9.png

3、进行打包

npm run make

(1)、模块类型报错:

https://i-blog.csdnimg.cn/direct/255d5253c65640159408d1036dc7d119.png

把package.json文件中的 【“type”: “module” 】换成 【“type”: “CommonJS”,】
注:本地运行需要改回module


(2)、未设置入口报错:

https://i-blog.csdnimg.cn/direct/5253f9afdae44f2c87c417eb2f10f743.png
解决方案:

package.json文件添加【“main”: “dist-electron/index.js”】
确保文件路径存在,若不存在,在本地运行一遍即可生成


(3)、缺少简述报错:

https://i-blog.csdnimg.cn/direct/7057c683fe6948aca498e4a7aa14d717.png
解决方案:

在package.json文件根节点添加简述【“author”: “测试打包”,】【“description”: “测试打包–”】

(4)、路径出现中文名报错:

https://i-blog.csdnimg.cn/direct/9c1f971da50549efa63e1cf35c56ec75.png

原因:项目路径出现中文名

解决方案:

删除项目路径中的中文名即可

(5)、打包超时报错:

An unhandled rejection has occurred inside Forge:
RequestError: connect ETIMEDOUT 20.205.243.166:443
at ClientRequest. (X:\your project name\node_modules\got\dist\source\core\index.js:970:111)
at Object.onceWrapper (node:events:634:26)
at ClientRequest.emit (node:events:531:35)
at ClientRequest.emit (node:domain:488:12)
at origin.emit (X:\your project name\node_modules@szmarczak\http-timer\dist\source\index.js:43:20)
at TLSSocket.socketErrorListener (node:_http_client:500:9)
at TLSSocket.emit (node:events:519:28)
at TLSSocket.emit (node:domain:488:12)
at emitErrorNT (node:internal/streams/destroy:169:8)
at emitErrorCloseNT (node:internal/streams/destroy:128:3)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1607:16)
error Command failed with exit code 1.
info Visit for documentation about this command.

解决方案:

上述尝试方案第三条