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

Electron应用.asr压缩后SteamPipe更新及文件排除问题咨询

解决Electron + SteamPipe中.asr文件拆分更新的问题

先解决asr.uncompressed目录未生成的问题

你之前尝试排除文件无效,大概率是配置路径或位置不对,以下是针对不同Electron打包工具的正确配置方式:

如果你用的是Electron Builder(npm run make默认依赖它)

在项目根目录的package.json里添加build配置,明确指定要从.asr中拆分的文件:

"build": {
  "asar": true,
  "asarUnpack": [
    // 用通配符或具体路径匹配你要排除的.js文件
    "**/frequent-update-*.js",
    "src/utils/constant.js"
  ]
}

注意路径是相对于打包后的app目录,不是项目根目录的路径。比如你的.js文件在项目src/js下,打包后会被放到app目录的js文件夹,所以配置里写js/*.js即可。

如果你用的是Electron Forge

修改项目根目录的forge.config.js,在packagerConfig里配置:

module.exports = {
  packagerConfig: {
    asar: true,
    asarUnpack: [
      'js/frequent-update-1.js',
      'js/frequent-update-2.js'
    ]
  },
  // 其他配置...
};

配置后重新执行npm run make,你要找的拆分文件会在打包产物的resources/app.asr.unpacked目录下(不是你说的asr.uncompressed,可能是记混了目录名)。

拆分后SteamPipe的更新逻辑

把频繁修改的.js文件从.asr中拆分出来后:

  • 媒体文件依然留在.asr包里,因为不常更新,SteamPipe只会在.asr本身变化时才上传完整包
  • 每次修改.js文件后,SteamPipe对比文件时只会检测到这些拆分出来的.js文件的变化,只需要上传几KB的变更内容,和你之前未用.asr时的更新逻辑一致,完全不需要每次上传整个大.asr文件。

验证配置是否生效的小技巧

执行npm run make后,打开打包后的resources目录:

  1. 确认app.asr存在(这是压缩后的主包)
  2. 打开app.asr.unpacked,检查你要拆分的.js文件是否出现在里面
  3. 如果还是没有,检查配置里的路径是否和实际打包后的文件结构匹配,或者有没有自定义脚本覆盖了asar的配置参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 02:53:17