删除node_modules依赖文件很慢?其实三秒就能删除了
前言:
估计只要是从事前端开发的友友们肯定都会遇到过删除node_modules
依赖文件的情况,但你们有没有发现删除的特别慢,如果一些��用比较多库的项目,删除都得要一个小时,所以接下来我就从删除依赖为什么会慢和如何秒删除依赖两个方面去写这文章。
一、删除node_modules依赖文件为什么会慢?
直接通过图形用户界面删除
node_modules
文件夹慢,原因主要有以下5点原因:
(1)文件数量巨大:node_modules
依赖可能会有上万个文件和文件夹,那么就使得操作系统需要花费非常多的时间来处理每一个文件的删除。
(2)文件系统缓存:操作系统有可能需要花时间去刷新文件系统的缓存,特别是对于那些频繁访问的文件或目录。
(3)文件进程被占用:如果某些进程正在使用 node_modules
中的文件,也就是被正在引用,那么这些文件将无法被删除的,会弹出提示直到相关的进程释放。
(4)磁盘IO限制:硬盘或SSD的读写速度也可能成为瓶颈,尤其是在比较老机械硬盘上,随机读写的性能较低就会特别慢。
(5)图形界面限制:图形界面的文件管理器在处理大量文件时,可能会因为UI的更新和绘制而变慢。
二、怎样快速完成node_modules依赖删除?
其实借助一个命令行工具
rimraf
即可实现秒删除,如下是具体的操作流程。
(1)先全局安装 rimraf
npm install -g rimraf
(2)执行命令删除
rimraf node_modules
(3)重新下载依赖
npm install
注意1
:或者如果你使用的是 npx(无需全局安装 rimraf)
npx rimraf node_modules
注意2
:Vue项目删除node_modules和改了配置要重新启动项目,要不然会不生效
三、rimraf
为什么能快速删除node_modules
?
rimraf
其实是一个Node.js
模块,它能提供一个跨平台的方式来删除文件和目录。它快速的主要原因其实主要有以下几点:
(1)异步操作:因为rimraf
使用异步IO
操作,那么它就不会阻塞事件循环,能更高效地处理大量文件和目录的删除。
(2)递归删除:rimraf
会递归地删除目录及其所有子目录和文件,这比手动或使用某些操作系统命令(如Windows下的rmdir)有更高的效率,因为后者有可能需要很多次调用才能完全清空一个非空目录。
(3)错误处理:rimraf
能够更好地处理删除过程中可能出现的错误问题,比如权限问题或文件正在被引用的情况,它会尝试重试或跳过这些文件,而不是把整个过程失败。
(4)跨平台兼容性:rimraf
在不同的操作系统上的表现都是一致的,这就意味着在Windows
、Linux
还是macOS
上,它的性能和行为都是很接近的。
小结:
上面仅仅是博主日常用的解决方法,但如果有更多有意思的方法或者哪里写的不对方便指正哈。
转载自:https://juejin.cn/post/7389925676532908041