【发布时间】:2021-04-27 20:28:04
【问题描述】:
是否可以从我的package.json 中的 NPM 包列表中排除文件?
我有一个工作方式略有不同的非浏览器环境:node_modules 目录中的每个文件都成为生产包的一部分。所以没有智能 treeshaking 只导入我在代码中使用的文件。
例如,我使用了一些包含大量测试和 i18n 文件的软件包,其中大部分我不需要并且喜欢从打包的生产版本中删除。但是,它们仍然包含在最终包中,因为整个包文件夹都包含在构建中。
我正在尝试从包中删除尽可能多的文件(无需每次都手动执行)以节省空间和编译时间。我使用的环境是循环node_modules目录中的所有文件,并将它们添加到生产包中(全部使用Javascript打包)。我想要一个 JavaScript 解决方案来在编译时删除这些文件,以便最终包尽可能小。
【问题讨论】:
-
这适用于您包含在 Web 应用程序中的服务器端 nodejs 包还是客户端包?
-
客户端软件包,例如 numericjs/momentjs/mustache/backbone
-
“我想要一个 JavaScript 解决方案来在编译时删除这些文件,这样最终的包就尽可能小了。” 如果你捆绑你的 JavaScript,那么它会仅包含作为您导入代码的依赖项的文件。包中不直接依赖的任何其他文件(测试或 CSS 文件通常不是),将不包括在内。
-
如果你捆绑你的 JavaScript,那么它只会包含你导入的代码的依赖文件。这是从哪里来的?假设我使用 npm 得到npmjs.com/package/numeral;不管我怎么说,
tests目录将保留在包中。当我打包我的项目时它会在那里
标签: javascript node.js npm package.json