准备部署时如何清理node_modules文件夹

Hay*_*yun 8 resource-cleanup node.js npm node-modules

在准备部署代码时,我将如何清理node_modules文件夹.

我正在使用node-webkit创建一个应用程序,并且在捆绑最终版本的应用程序时,由于解压缩过程需要一些时间,因此我希望包含尽可能少的文件.

我已经查看npm dedupe并使用npm install --production去除重复项并仅获取生产文件,但是我仍然留下Readme文件benchmarks,tests以及build我不需要的文件.

我想为node_modules文件夹中的每个模块最终得到的是一个LICENSE文件(如果它存在),package.json以及模块运行所需的任何其他内容,但仅此而已.

问题:如何自动清理一个SCM提交的node_modules目录有点朝着同一个方向,但它正在谈论提交所以不是我真正想要的.

问题:NPM清洁模块在某种程度上与我的相同,但并不完全相同.

这个答案很有帮助,因为它是dedupe捆绑最终应用程序的更有效的版本.

更新
我尝试了从这里链接的自定义模块,但它似乎无法正常工作,即使在一些摆弄之后.

尽管如此,我还没有找到正确的答案.


这是我正在寻找的一个例子.

在我的项目中,我目前有两个依赖项:socket.iosocket.io-client.

它们共计15 MB,包含110个文件夹中的550个文件.

手动清洁readme,makefile,VC++建立文件,如.pdb.obj和其他不必要的文件,我能够缩小它下降到2.74 MB265个文件73个文件夹.
这只有两个模块.

我想知道是否有办法自动执行此操作,最好是npm.

Bre*_*tin 7

此模块尝试智能清理node_modules文件夹:

modclean

安装:

npm install modclean -g
Run Code Online (Sandbox Code Playgroud)

要么

npm install modclean --save-dev
Run Code Online (Sandbox Code Playgroud)

用法:

modclean
Run Code Online (Sandbox Code Playgroud)

它使用一组默认模式从整个依赖关系树中的模块中删除不必要的膨胀.


Gnt*_*tem 3

清理node_moduleswebkit 应用程序的部署,有点困难,因为node_modules目录内的模块安装有或没有测试文件和其他杂项文件,因此,如果模块的所有者已.npmignore使用 dir/files 声明了一个文件当所有者发布他的模块时,诸如testsexamples那些将被排除在打包过程之外,但它将正常存在于存储库(git)中。

排除 npm 包中的测试代码?

上面的内容留在模块所有者手中,如果他/她“忘记”制作一个,那么包将包含几乎所有内容。


请注意,由于您不使用development的包socket.io,或者socket.io-client这并不意味着您必须这样做npm install socket.io --save-dev,因此简单的方法npm install socket.io -V是安装由其所有者上传的生产包。
一个可能的解决方法是制定一项grunt任务,node_modules按照您的意愿清理整个系统。

一些规则是

  • testtests目录或*test*.js文件
  • build目录(不确定它有时可能包含一些必要的二进制文件)
  • history.md

GruntJS


希望我能有所帮助,也看看Tilemill以及他们如何部署他们的应用程序。