当前位置:首页 > 技术文章 > 正文内容

一条命令删除目录下的所有node_modules

zonemu16小时前技术文章1

作为前端开发,应该都了解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目录和所占空间

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删掉了,今天一边整理文章,一边工作,又安装了几个项目:

从图中看,这才区区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/

相关文章

7 款最佳 Linux 桌面发行版,颜值天花板

一、elementary OS二、Deepin三、Pop!_OS四、Manjaro Linux五、KDE Neon六、Zorin OS七、Nitrux OS想必大家都知道三大常用操作系统:Linux、...

微软的Linux发行版终于加入了对XFS根文件系统的支持

当许多Linux发行版在评估新的根文件系统选项或甚至像OpenZFS这样的特性,微软内部Linux发行版到本月才开始支持XFS作为根文件系统选项。随着这个月对微软内部Linux发行版CBL-Marin...

vue 3 学习笔记 (八)——provide 和 inject 用法及原理

在父子组件传递数据时,通常使用的是 props 和 emit,父传子时,使用的是 props,如果是父组件传孙组件时,就需要先传给子组件,子组件再传给孙组件,如果多个子组件或多个孙组件使用时,就需要传...

傻瓜式DEVOPS实践手册——Gitlab部署

GitLab是一款开放源代码的DevOps平台,用于实现从项目规划、源代码管理、CI/CD到监控和安全性的全方位集成。GitLab主要用于版本控制、协同开发、持续集成/持续部署 (CI/CD)、自动化...

使用Java统计gitlab代码行数(统计github代码行数的方法)

使用Java统计gitlab代码行数一、背景:需要对当前公司所有的项目进行代码行数的统计二、 可实现方式1.脚本:通过git脚本将所有的项目拉下来并然后通过进行代码行数的统计样例:echo 创建项目对...

基于Docker构建安装Git/GitLab,以及制作springboot工程镜像

今天给大家分享的是《领先的开源自动化服务器Jenkins的应用实战》之基于Docker安装构建Git/GitLab版本控制与代码云存储的场所;使用Git管理项目,springboot工程制作镜像知识体...