Electron Builder打包参数中的files、extraResources、extraFiles

Electron Builder 中,filesextraResourcesextraFiles 都是用来控制 哪些文件会被包含到打包产物中,但它们作用的阶段和目标位置 完全不同
下面是详细的区别对比:


🧩 一、files

📘 作用:

指定哪些文件/目录会被打进 app.asarresources/app 中,也就是应用的核心源代码部分。

📂 默认行为:

如果不配置,Electron Builder 会默认包含 package.jsonmain.jsdist 等构建输出目录。
但你可以通过 files 精确控制要包含或排除的文件。

🧱 典型用法:

"files": [
  "dist/",
  "main.js",
  "package.json",
  "!**/*.map",
  "!tests/**"
]

📍 文件最终位置:

  • 打包后:
    resources/app.asar(或者如果禁用asar,则是 resources/app/

✅ 适用场景:

  • 应用自身的代码、资源文件、前端静态文件。

  • 不建议放大的二进制文件或dll。


📦 二、extraResources

📘 作用:

用于将 非源码文件(如模型、DLL、配置文件、数据库、图像模板等)复制到最终打包目录的 resources/ 下。
这些文件 不会被打进 app.asar

🧱 典型用法:

"extraResources": [
  {
    "from": "assets/",
    "to": "assets/",
    "filter": ["**/*"]
  },
  {
    "from": "native/",
    "to": "native/",
    "filter": ["*.dll"]
  }
]

📍 文件最终位置:

  • 打包后路径:
    resources/assets/...
    resources/native/...

✅ 适用场景:

  • 运行时需要动态加载的资源文件,比如:

    • DLL(用于 koffi.load()ffi

    • 外部配置文件

    • 模型文件(AI 模型、权重文件)

    • 需要用户可替换的内容


🧰 三、extraFiles

📘 作用:

将文件复制到 最终安装包的根目录(或者与可执行文件同级目录),而不是 resources/

🧱 典型用法:

"extraFiles": [
  {
    "from": "tools/",
    "to": "tools/",
    "filter": ["*.exe"]
  }
]

📍 文件最终位置:

  • 打包后路径(以 Windows 为例):

    MyApp/
    ├─ MyApp.exe
    ├─ tools/
    │   └─ helper.exe
    └─ resources/
    

✅ 适用场景:

  • 需要与主程序同级放置的可执行文件、脚本或驱动安装程序。

  • 例如主进程需要 spawn('tools/helper.exe')


📊 对比表

参数打包位置是否进入 app.asar适合的文件类型示例用途
filesresources/app.asarresources/app/✅ 是源码、静态资源你的 Electron 应用代码
extraResourcesresources/❌ 否DLL、配置、AI模型、数据文件运行时动态加载文件
extraFiles应用根目录,与 .exe 同级❌ 否外部工具、独立程序辅助命令行工具、驱动安装器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光芒万丈向远方

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值