electron-forge打包和electron-builder打包

本文讲述了作者在使用electron-forge和electron-builder打包HTML+JS脚本项目为exe桌面应用时,遇到如何允许用户自定义安装位置的问题。虽然electron-forge默认不提供此选项,但通过切换至electron-builder并配置`nsis`部分解决了问题,同时提到electron-forge适合直接运行程序而electron-builder更适合打包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记录

最近在做一个html+js的脚本项目,因为需求需要打包成exe桌面应用,这里经理告诉我用election,开始的时候参考官方文档,优先选择electron-forge进行打包,但是最后打包出来的exe是自动安装而且有一个绿色的安装动画
在这里插入图片描述
最后搜索怎么允许选择安装位置,结果都是需要在package.json中配置

"build": { 
    "nsis": {
      "oneClick": false,
      "allowToChangeInstallationDirectory": true,
      "perMachine": true
    }
  },

但是electron-forge的配置在单独的一个forge.config.js文件中,但是我没查到在这个文件中怎么配置允许用户选择安装位置,最终改成了electron-builder打包方式参考链接

目前我这里的区别是electron-forge可以直接运行程序,electron-builder只能打包程序,其它暂时没有影响。

链接:

  1. electron打包可选择安装位置,可自动更新
  2. Electron 15.0 官方文档
### 常见问题及解决方案 #### 1. 使用 pnpm electron-builder 打包时 nsis 报错 当使用 pnpm 安装依赖项并通过 electron-builder 进行打包操作时,可能会遇到 NSIS 编译错误。此问题是由于 Windows Installer 的某些组件未能正确配置所致[^1]。 对于该类问题的解决方法是在项目的根目录下尝试更新或重新安装构建工具链,并确保所有必需的环境变量已正确定义。如果仍然存在编译器找不到的情况,则可以考虑清理 node_modules 文件夹以及 package-lock.json 或 yarn.lock 后再次运行 `pnpm install` 来重建整个依赖树结构。 另外,在 GitHub 上有开发者建议可以通过设置特定版本号来规避这个问题;具体来说就是把 `electron-builder` 版本锁定在一个更稳定的发布版上,或者调整其他相关插件(如 `@electron-forge/maker-squirrel`)到兼容版本。 ```json { "devDependencies": { "@electron-forge/maker-squirrel": "^6.0.0-beta.58", ... } } ``` #### 2. 加载 HTML 页面失败 在启动 Electron 应用程序期间发生加载本地文件路径下的 index.html 出现 `ERR_FILE_NOT_FOUND` 错误提示意味着应用程序试图访问不存在的位置中的资源[^2]。 要修复此类问题,请确认以下几点: - 确认所指定的目标地址确实存在于磁盘上的预期位置; - 验证项目内部链接是否指向正确的相对路径而非绝对路径; - 如果适用的话,检查 Webpack/Vite 等模块捆绑器配置以确保它们不会改变最终输出文件名或放置位置。 此外还可以利用命令行参数 `--trace-warnings` 获取更多关于警告产生的上下文信息以便进一步排查原因所在。 #### 3. 创建打包基于 Vue3 的 Electron 应用 针对采用 Vite 构建工具集创建的新一代前端框架集成方案——即 electron-vite-vue 组合模式下可能出现的各种挑战进行了总结[^3]。 其中提到的一个重要方面是如何妥善处理不同平台之间的差异性需求,特别是涉及到操作系统特有的功能特性或是第三方库支持情况的时候。为了提高跨平台移植性稳定性,推荐遵循官方文档指导完成初始搭建过程后再逐步引入自定义逻辑实现业务目标。 同时也要注意监控社区反馈动态及时跟进最新进展从而获得更好的实践经验潜在优化方向。 #### 4. electron-store 插件冲突 有时会因为使用的软件包之间不匹配而导致异常状况的发生,比如这里描述了一个有关于 `electron-store` 在较高版本中与其他部分产生矛盾的情形[^4]。 降低其版本至 ^8.0.0 能够有效缓解上述提及的现象,这表明可能是新近发布的迭代里包含了尚未完善的改动影响到了整体运作流程。因此保持对各组成部分状态的关注有助于提前预防可能存在的风险因素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值