Javascript 节点\u模块文件夹太大

Javascript 节点\u模块文件夹太大,javascript,gulp,node-modules,package.json,Javascript,Gulp,Node Modules,Package.json,我使用Gulp已经有一段时间了,要么我没有注意到它从一开始就占用了这么多空间,要么它的尺寸一直在增长 我只在非常正常的前端工作中使用它。例如,这是我的gulpfile.js的请求部分: var gulp=require('gulp'), autoprefixer=require('gulp-autoprefixer'), browserSync=require('browser-sync'), concat=require('gulp-concat'), 复制=需要('gulp-copy'),

我使用Gulp已经有一段时间了,要么我没有注意到它从一开始就占用了这么多空间,要么它的尺寸一直在增长

我只在非常正常的前端工作中使用它。例如,这是我的
gulpfile.js
的请求部分:

var gulp=require('gulp'),
autoprefixer=require('gulp-autoprefixer'),
browserSync=require('browser-sync'),
concat=require('gulp-concat'),
复制=需要('gulp-copy'),
del=需要('del'),
htmlmin=require('gulp-htmlmin'),
merge=require('merge-stream'),
streamqueue=require('streamqueue'),
cleancss=require('gulp-clean-css'),
gulpif=require('gulp-if'),
更新=需要('gulp-newer'),
imgmin=require('gulp-imagemin'),
管道工=需要(“管道工”),
POSTSS=需要(“咕噜-POSTSS”),
订单=要求('gulp-order'),
重命名=需要('gulp-rename'),
runSequence=require('run-sequence'),
sass=require('gulp-sass'),
sourcemaps=require('gulp-sourcemaps'),
uglify=需要('gulp-uglify'),
uncss=需要('gulp-uncss');

现在,根据
du-sh
,node_模块的重量为2.2GB,我认为这太重了。我想再深入一点,所以我查看了所有根模块:


我在这里可能很幼稚,但我只是期待一些javascript功能,我不明白这些模块,尤其是顶级模块,如何或为什么会如此庞大


这就是Gulp的设计吗?我是在倒着做吗?我能改进这个(除了不使用它/那些)吗?

我想到了一些方法:

  • 更多的是关于您的package.json,因此如果您可以对其进行优化,这是一个非常好的选择:

    • 将包作为依赖项和依赖项分开,这有助于在生产模式下减小节点模块的大小(当您在npm安装上使用
      –production
      标志时)
    • 用较轻的lib或依赖关系较少的lib替换一些较大或依赖关系较多的lib
  • 使用或其他类似的软件包,从node_模块中删除不必要的文件


  • 你的
    包.json中有什么?吞咽不会影响您的
    节点\u模块
    。请检查此项。这里有一个网站,显示了您的依赖项还有多少其他依赖项。UNCS非常大,因为它有很多其他依赖项@卢卡斯绝对是。实际上,在每个项目中,我都必须
    npmi
    。以
    uncss
    为例,它需要242MB。想想在242MB的空间中有多少行javascript。有点不对劲。每个人都应该在业余时间研究一下自己的节点单元模块。里面有些奇怪的东西不应该存在。未使用的dist/目录,其中包含缩小/未统一的文件、无法在您的系统上运行的.exe文件的多个副本(x64和x86)、仅使用大型库借用其stripIndents函数的包。。。这是“我将只使用几个依赖项…”重复数百次的高潮。指数增长。那么我们在这里都同意吗?这是一个繁琐的手工实验切除过程(意味着永远无法完成),还是有工具可以让这更容易?