[英]Getting RingoJS to look for required modules in the node_modules directory
[英]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 应用程序有关。
您可以运行: 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.