You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu用Electron Forge构建Snap包时未处理拒绝错误排查

问题说明
  • 此问题并非《Forge内部出现未处理拒绝:找不到Electron依赖包》的重复问题
  • 该问题的解决方案是在package.json中添加author和description字段,我已完成此操作。
详细情况

尝试用Electron Forge构建Snap包

  • 项目已配置好forge.config.js,可正常构建deb、rpm、Windows、Mac(zip和dmg)等格式的发布包
  • 当前尝试通过官方指定的@electron-forge/maker-snap包构建Snap包
  • 执行$ npm run make命令(Electron项目官方构建命令)
  • 已尝试新建目录克隆代码重新构建,仍出现相同错误

报错信息

An unhandled rejection has occurred inside Forge:
Error: Command failed with a non-zero return code (2):
/usr/bin/snapcraft snap --output=/home/raddev/dev/electron/CYaPass-Electron/out/make/snap/x64/cyapass_1.4.4_amd64.snap
at ChildProcess.<anonymous> (/home/raddev/dev/electron/CYaPass-Electron/node_modules/@malept/cross-spawn-promise/dist/src/index.js:99:24)
    at ChildProcess.emit (node:events:514:28)
    at ChildProcess.emit (node:domain:489:12)
    at maybeClose (node:internal/child_process:1105:16)
    at ChildProcess._handle.onexit (node:internal/child_process:305:5)

构建状态

项目可成功构建为deb包,但Snap包打包环节失败。

已尝试的解决措施
  • 执行rm -rf out删除构建目标目录,让npm重新创建以确保权限
  • 调整forge.config.js中Snap构建的各类配置
  • 尝试手动执行snapcraft命令,但缺少打包器生成的yaml文件
实际失败原因

实际是本地snapcraft调用失败,当前snapcraft版本为snapcraft 7.5.2,失败的命令为:

/usr/bin/snapcraft snap
--output=/home/raddev/dev/electron/CYaPass-Electron/out/make/snap/x64/cyapass_1.4.4_amd64.snap

排查npm库代码后发现仅为异常抛出点,未找到根本原因。

进一步排查
  • 通过npx electron-installer-snap --src=out/myappname-linux-x64命令尝试,得到额外提示:需要安装multipass
  • 执行sudo snap install multipass安装后,仍报错无法连接multipass套接字;重启机器后再次尝试,出现路径不存在等错误,报错代码仍为2
环境复现

在VirtualBox中安装Debian系统,配置好依赖后执行npm run make,出现完全相同的失败情况。


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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 09:32:46