node modules文件夹是什么(一条命令删除目录下的所有node)

作为前端开发,应该都了解node_modules这个目录,尤其同时维护多个项目的时候,每个项目都会产生一个node_modules,每个node_modules少则几十兆,多则几百甚至上千兆,随着时间的积累,维护项目的增加,整个项目目录体积会越来越大。

node_modules原罪

删除之前,先了解点node_modules的背景。

node_modules是在node工程项目中,通过npm install命令安装的依赖包。实际项目开发中,可能直接使用到的依赖并没有那么多,但是每个npm包又依赖着其他的包,这样层层嵌套引用,那整个的node_modules就会变得特别大了。

尤其早期npm,对依赖的管理方式并不好,比如有A、B两个包均引用了C包,并且,两个包依赖的C包版本不同,那么执行npm install安装时,会把不同版本的C包分别安装到A和B两个包各自目录下的node_modules文件夹,这些文件都会大量增大整个node_modules目录的体积。尽管这种依赖方式在后期的npm升级迭代过程中不断的打磨优化,但是node_modules太重的问题似乎并没有彻底解决的办法。

node modules文件夹是什么(一条命令删除目录下的所有node)(1)

查询目录下所有的node_modules目录和所占空间

Linux中的命令:

find . -name "`node_modules`" -type d -prune | xargs du -chs

Windows中的命令(当然,Windows中也可以借助一些shell客户端或者WLS等方式,执行上面的Linux命令,并且我相信更多人会选择这种方式):

FOR /d /r . %d in (`node_modules`) DO @IF EXIST "%d" echo %d"

在整理这篇文章前,我已经把我所有项目的node_modules删掉了,今天一边整理文章,一边工作,又安装了几个项目:

node modules文件夹是什么(一条命令删除目录下的所有node)(2)

从图中看,这才区区5个项目而已,node_modules就已经占用了1.2G的硬盘空间,着实吓人呢。

删除目录下所有的node_modules目录

删除命令和查询命令差不多

Linux系统中

find . -name "`node_modules`" -type d -prune -exec rm -rf '{}'

Windows系统中

FOR /d /r . %d in (`node_modules`) DO @IF EXIST "%d" rm -rf "%d"

本文永久链接: https://www.mulianju.com/delete-all-node_modules/

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页