如何在electron-builder构建中包含项目data目录及内部JSON文件?
如何让electron-builder正确打包data目录及其内容
嘿,我来帮你解决这个问题——你当前的package.json里extraFiles的写法不对,导致data目录没被正确包含到构建产物里。下面是具体的修正方案:
方案一:精准指定目录(推荐)
把extraFiles改成明确的源路径和目标路径配置,这样electron-builder会完整打包data目录下的所有文件和子目录:
"build": { "appId": "test.tester.test", "directories": { "app": "" }, "extraFiles": [ { "from": "data/", "to": "data/" } ] }
from:设置项目根目录下的源data路径to:设置打包后在应用内保留的目标路径(和源目录同名,保持结构一致)
打包完成后,你可以在应用包的资源目录里找到完整的data目录(比如Windows的resources文件夹,macOS的Contents/Resources文件夹)。
方案二:简洁的glob匹配写法
如果只是想原封不动打包data目录,也可以用更简单的glob模式写法:
"build": { "appId": "test.tester.test", "directories": { "app": "" }, "extraFiles": ["data/**/*"] }
这里的data/**/*表示匹配data目录下的所有文件、子目录以及子目录里的文件,完全覆盖你的需求。
验证配置是否生效
打包完成后,你可以手动检查构建产物:
- Windows:打开
dist/win-unpacked/resources目录,看是否有data文件夹 - macOS:右键应用选择「显示包内容」,进入
Contents/Resources查看data目录 - Linux:打开
dist/linux-unpacked/resources目录确认
另外,你设置的directories.app: ""是没问题的,这表示electron-builder会把项目根目录作为应用源目录,只要你的main.js确实在根目录下就ok。
内容的提问来源于stack exchange,提问作者Abhijith C S
相关产品推荐
相关产品推荐

