如何让electron-builder复制默认被排除的.pyc文件?
解决electron-builder无法复制.pyc文件的问题
我之前也踩过这个坑!electron-builder的默认忽略规则确实有点“固执”,文档说默认规则会被强制添加,直接在files里加**/*.pyc确实没用,不过咱们有几个可行的办法绕开这个限制:
方法1:用ignore字段取消默认的.pyc排除规则
electron-builder的执行逻辑是:先应用所有默认忽略项,再叠加你自定义的ignore规则。所以我们可以用!前缀来“撤销”默认对.pyc文件的排除,再配合files的包含规则,就能让这些文件被正常复制。修改你的package.json里的build配置:
"build": { "files": [ "**/*", // 保留你原本需要打包的所有文件 "**/*.pyc" ], "ignore": [ // 这里添加其他你需要主动忽略的文件,然后加上下面这行 "!**/*.pyc" ] }
方法2:用extraResources单独指定.pyc文件作为额外资源
如果你不需要把.pyc文件和主程序放在同一个目录,这个方法更省心。extraResources字段里的文件不受默认忽略规则的约束,会被直接复制到打包后的resources目录下(不同平台的具体路径略有差异):
"build": { "extraResources": [ "**/*.pyc" // 可以指定精准路径,比如"src/utils/**/*.pyc"避免匹配无关文件 ] }
额外注意事项
- 如果你的.pyc文件在
node_modules目录下,默认会被更严格地忽略,这时候需要把路径写得更明确:比如在files里写node_modules/**/*.pyc,同时在ignore里加!node_modules/**/*.pyc。 - 打包前可以先用
electron-builder --dir命令生成一个未压缩的目录包,直接查看里面是否包含了目标.pyc文件,这样能快速调试配置是否生效。
内容的提问来源于stack exchange,提问作者unluckycoder
相关产品推荐
相关产品推荐

