Node.js 是否有办法清理节点\模块目录,只留下所需的依赖文件?

Node.js 是否有办法清理节点\模块目录,只留下所需的依赖文件?,node.js,deployment,npm,npm-publish,Node.js,Deployment,Npm,Npm Publish,使用npm安装和管理软件包非常棒!我不觉得这么好的是它能留下的混乱 我已经开始在客户端和节点依赖关系管理中使用npm,我注意到我所依赖的各种包有很多不同的安排。有些有lib文件夹,有些有src文件夹,有些有dist,有些有文档,有些有示例等。 我理解这是因为这些包通常直接来自源代码 我的问题是: 是否有一种方法可以识别甚至自动删除任何不需要的文件,以便部署到生产环境中? 我在想:删除任何readme.md(我想很容易)或示例文件(可能很容易) 理想情况下,我希望能够从我的入口点准确计算依赖关系树

使用npm安装和管理软件包非常棒!我不觉得这么好的是它能留下的混乱

我已经开始在客户端和节点依赖关系管理中使用npm,我注意到我所依赖的各种包有很多不同的安排。有些有
lib
文件夹,有些有
src
文件夹,有些有
dist
,有些有
文档
,有些有
示例
等。 我理解这是因为这些包通常直接来自源代码

我的问题是:

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

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

编辑:


正如Alexander Mac(以下)所指出的,前端dep的一个好策略是将客户端依赖项作为开发依赖项和构建包含在内。所以我的问题只与nodejs应用程序有关。

我可能建议将您的代码(和dep)与或构建成一个捆绑包


这些模块加载程序利用这种方法只包含实际使用的代码。

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

npm重复数据消除
将通过将等效模块向上拉到根节点来删除重复依赖项。/node\u modules/。我不知道这有多有用。我这样做了,然后意识到有一大堆模块是我间接使用的,我也可以直接使用,就是这样

做到这一点的可靠方法还有:

rm-rf./node\u模块。/bower\u组件
npm安装

无论如何,在发布到生产环境之前进行干净的构建是一个很好的实践


另外,我使用
sinopia
在本地缓存模块,这样可以减轻网络流量,因此这些重新安装的时间消耗更少。

您不应该在生产环境中部署后端依赖项吗?您应该使用
npmi--production
安装它们。那么前端依赖关系呢,您可以在本地构建它们(使用任务运行程序,如gulp),并只将捆绑包推送到服务器。-Alexander Mac fair point关于前端依赖关系。将前端依赖项安装为开发人员依赖项和构建是有意义的。太棒了!我正在客户端上使用Webpack-我会看一看,看看这是否解释了我需要什么。谢谢