我应该如何排除电子打包器中的所有 node_modules

Posted

技术标签:

【中文标题】我应该如何排除电子打包器中的所有 node_modules【英文标题】:How should i exclude all node_modules in electron-packager 【发布时间】:2018-09-01 22:16:51 【问题描述】:

我正在使用 electron-packager 来创建我的应用程序的 electron.exe。我需要排除所有节点模块。我尝试了以下

--ignore=node_modules

上述方法不起作用。知道如何在最终构建中排除所有文件夹/删除节点模块。

【问题讨论】:

我建议使用 electron-forge npmjs.com/package/electron-forge 或 electron-builder github.com/electron-userland/electron-builder 让您的生活更轻松。除非你有一个非常特殊的用例,否则这些包会让事情变得更容易和更快。 我强烈反对使用 electron-forge,因为它依赖于 electron-compile 和 electron-packer。两者都有很大的缺陷,尤其是电子编译(过时的转译器,scss 的路径处理有缺陷等等)。另一方面,electron-builder 是正确的工具,它将从“发布”节点模块中排除所有 devDependencies。 electron-forge 无论如何都使用electron-packager 进行打包 【参考方案1】:

如果您以devDependencies 安装模块,它们将在打包前被自动修剪。

如果您使用electron-builder,您可以在配置中将全局模式定义为files。在这种情况下,!**/node_modules/* 将排除所有 node_modules

如果您使用electron-packager,您可以使用ignore 选项和正则表达式来排除文件。

【讨论】:

我必须使用!node_modules/**/*

以上是关于我应该如何排除电子打包器中的所有 node_modules的主要内容,如果未能解决你的问题,请参考以下文章

jQuery - 从选择器中排除具有特定值的输入

如何使用jquery排除子选择器中的子项?

如何从重写器中排除特定文件

如何在 CSS 选择器中排除特定的类名?

linux文件夹内文件复制,如何排除某个文件

[LINUX] 用"tar -c"打包文件时,如何排除其中的链接文件?