假设我安装项目包npm install,查看package.json要安装的模块.过了一会儿,我发现我不需要一些特定的模块并从中删除它的依赖性package.json.然后我删除了一些其他模块,package.json因为它们不再需要,而其他模块则替换为替代模块.
现在我想清理node_modules文件夹,以便只有那些列出的模块package.json留在那里,其余的必须去,就像这样npm clean.我知道我可以手动删除它们但是希望有一些很好的准备使用糖功能.
在准备部署代码时,我将如何清理node_modules文件夹.
我正在使用node-webkit创建一个应用程序,并且在捆绑最终版本的应用程序时,由于解压缩过程需要一些时间,因此我希望包含尽可能少的文件.
我已经查看npm dedupe并使用npm install --production去除重复项并仅获取生产文件,但是我仍然留下Readme文件benchmarks,tests以及build我不需要的文件.
我想为node_modules文件夹中的每个模块最终得到的是一个LICENSE文件(如果它存在),package.json以及模块运行所需的任何其他内容,但仅此而已.
问题:如何自动清理一个SCM提交的node_modules目录有点朝着同一个方向,但它正在谈论提交所以不是我真正想要的.
问题:NPM清洁模块在某种程度上与我的相同,但并不完全相同.
这个答案很有帮助,因为它是dedupe捆绑最终应用程序的更有效的版本.
更新
我尝试了从这里链接的自定义模块,但它似乎无法正常工作,即使在一些摆弄之后.
尽管如此,我还没有找到正确的答案.
这是我正在寻找的一个例子.
在我的项目中,我目前有两个依赖项:socket.io和socket.io-client.
它们共计15 MB,包含110个文件夹中的550个文件.
手动清洁readme,makefile,VC++建立文件,如.pdb和.obj和其他不必要的文件,我能够缩小它下降到2.74 MB与265个文件73个文件夹.
这只有两个模块.
我想知道是否有办法自动执行此操作,最好是npm.
我正在遵循'官方'建议检查所有外部依赖关系到git(文章http://www.mikealrogers.com/posts/nodemodules-in-git.html链接到常见问题解答)时遇到问题
您如何确保不仅登记了顶级依赖项?大多数npm模块目前不遵循该建议.它们都在.gitignore中有node_modules.只是删除他们的.gitignore似乎有风险.
对于已编译的模块,本文建议仅签入源并运行'npm rebuild'和部署时间.不幸的是'npm rebuild'并没有为所有模块做'干净的制作'(尽管我正在使用的npm版本1.0.106中包含了错误修复https://github.com/isaacs/npm/issues/1872).这意味着我必须阻止编译目标(否则我将在生产机器上为开发人员机器编译目标代码,而不会被npm rebuild覆盖).但是:我该怎么做?不幸的是模块没有公共的编译输出目录,所以只需git-ignoring"node_modules// build"和"/ node_modules //out /"(如本文中提到的eng.yammer.com/blog/2012/) 1/4/managing-nodejs-dependencies-and-deployments-at-yammer.html在每种情况下都无济于事.
简短版本:如何确保生产服务器使用与开发期间使用的所有相关模块完全相同的版本?
我有一个天真的问题:在 npm ci 之后进行 npm prune 是否有兴趣?对我来说 npm ci 似乎就足够了,不是吗?
提前致谢