繁体   English   中英

有没有办法清理 node_modules 目录,只留下所需的依赖文件?

[英]Is there a way of cleaning a node_modules directory leaving only the required dependent files?

使用 npm 安装和管理包很棒! 我觉得不太好的是它可能留下的烂摊子。

我已经开始将 npm 用于客户端和节点依赖项管理,并且我注意到我依赖的各种包有很多不同的安排 有些有lib文件夹,有些有src文件夹,一些dist ,一些docs ,一些examples等。我理解这是因为通常这些包直接来自源代码。

我的问题是:

有没有一种方法可以识别甚至自动删除任何不需要的文件,以部署到生产环境? 我在想:删除任何 readme.md(我猜很容易)或示例文件(可能很容易)。

理想情况下,我希望能够从我的入口点准确计算依赖树的样子并删除不需要/未使用的文件......这对于依赖图像或字体或 HTML 的客户端包显然要困难得多。

编辑:

正如 Alexander Mac(下文)所指出的,前端 dep 的一个好策略是将客户端依赖项包含为 dev-dependencies 和 build。 所以我的问题只与 nodejs 应用程序有关。

我可能会建议使用rollup.jswebpack2将您的代码(和 deps)构建到一个包中。

这些模块加载器利用摇树方法仅包含实际使用的代码。

您可以运行: npm prune ,它将从 ./node_modules 中删除未在 packages.json 中指定为依赖项的模块。

npm dedupe将通过将等效模块拉到根目录 ./node_modules/ 来删除重复的依赖项。 我不知道这有多大用处。 我做到了,然后意识到我间接使用了一大堆模块,我也可以直接使用它们,所以就是这样。

这样做的一个可靠方法也是:

rm -rf ./node_modules ./bower_components npm install

无论如何,在发布到生产环境之前进行干净的构建是一种很好的做法。

另外,我使用sinopia在本地缓存模块,这减轻了网络流量,因此这些重新安装的时间密集程度要低一些。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM