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

Electron Forge使用绝对路径解析get-windows包导致应用分发失败

Electron Forge 打包后无法正确解析 get-windows 依赖路径

我开发的Electron应用集成了get-windows npm包,但分发时出现问题:Electron Forge会以绝对路径而非相对路径解析该包,导致应用运行时找不到依赖。

错误日志

[2024-06-26 11:11:04.968] [info]  getActiveWindow encountered error{"errno":-2,"code":"ENOENT","syscall":"spawn /Users/runner/work/<BRANCH_NAME>/node_modules/get-windows/main","path":"/Users/runner/work/<BRANCH_NAME>/node_modules/get-windows/main","spawnargs":["--no-screen-recording-permission"],"cmd":"/Users/runner/work/<BRANCH_NAME>/node_modules/get-windows/main --no-screen-recording-permission","stdout":"","stderr":""}

从日志可见,应用尝试从GitHub Actions runner的本地路径运行get-windows包,而非打包后的应用内部路径。

当前Electron Forge相关配置

asar: {
  unpack: '**/node_modules/get-windows/**'
},
hooks: {
  packageAfterPrune: async (_forgeConfig, buildPath) => {
    const cmd = process.platform === "win32" ? "yarn.cmd" : "yarn";
    try {
      spawnSync(cmd, ["add", "get-windows", "--force"], {
      cwd: buildPath,
      stdio: "inherit",
    });
  } catch (err) {
    console.log("caught exception in packageAfterPrune", err);
  }
},

使用版本信息

  • Node: 20
  • Electron: 26.0.0
  • electron-forge/cli: ^6.0.4
  • get-windows: ^9.1.1

已尝试的解决方法

  • 移除asar选项,触发其他运行时错误
  • 移除packageAfterPrune钩子,问题未得到解决

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 14:21:04