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