【快速删除 node_modules 】rimraf

news/2024/9/30 12:34:08 标签: npm, node.js, 前端

目录

1. 什么是node_modules

npm%E5%8C%85-toc" style="margin-left:0px;">2. 卸载一个npm

3. 删除 node_modules 为什么这么慢

4. rimraf

5. 为什么rimraf 这么快


作为前端开发,无论我们关注不关注,每天都能接触到node_modules。通常产生于一个npm install命令,之后就不会多加关注。只有在卸载的时候会发现删除整个node_modules怎么这么慢!

1. 什么是node_modules

node_modules是一个特殊的目录,通常用来存放项目所依赖的npm包及其相关依赖,以供应用程序在运行时动态加载所需的模块和库文件。

当使用npm或者yarn等包管理工具安装npm包时,会将相关依赖包下载并保存在项目的node_modules目录下,以便于在应用程序中引用和使用这些包。

npm%E5%8C%85">2. 卸载一个npm

npm uninstall <package-name> 

这个命令会卸载指定名称的包及其依赖,并将它们从项目的node_modules目录中删除。

3. 删除 node_modules 为什么这么慢

  • 数量庞大:我们说的是数千个文件,有时甚至是数十万个文件!穿越这个数字丛林需要时间。
  • 文件系统缓存:操作系统会缓存经常访问的文件。删除大型嵌套结构需要清除缓存,这会增加延迟。
  • 进程锁:如果有东西正在使用 node_modules 中的文件,删除工作就会戛然而止。
  • 磁盘 I/O 限制:硬盘和固态硬盘都有读/写速度。特别是老式硬盘,在随机存取方面很吃力,因此大量删除很麻烦。
  • 图形用户界面开销:图形文件管理器在处理大量文件操作时,会因 UI 更新而陷入困境。、

4. rimraf

rimraf 是一款命令行工具,可以快速删除node_modules

全局安装
npm install -g rimraf

局部安装

npx rimraf node_modules

执行
rimraf node_modules


5. 为什么rimraf 这么快

  • 异步操作:与某些一次删除一个文件的方法不同,rimraf 在后台工作,允许其他进程同时运行。
  • 递归删除:它能有效深入每个子文件夹,无需执行多个命令。
  • 强大的错误处理功能:遇到锁定文件RIMRAF 会通过重试或优雅地跳过有问题的文件。
  • 跨平台一致性:无论您使用的是 Windows、macOS 还是 Linux,rimraf 都能提供超快的结果。

http://www.niftyadmin.cn/n/5685111.html

相关文章

深度学习--------------------------------门控循环单元GRU

目录 门候选隐状态隐状态门控循环单元GRU从零开始实现代码初始化模型参数定义隐藏状态的初始化函数定义门控循环单元模型训练该部分总代码简洁代码实现 做RNN的时候处理不了太长的序列&#xff0c;这是因为把整个序列信息全部放在隐藏状态里面&#xff0c;当时间很长的话&#…

C++的6种构造函数

在 C 中&#xff0c;构造函数是一种特殊的成员函数&#xff0c;用于初始化类对象。在对象创建时自动调用&#xff0c;构造函数的主要作用是分配资源、初始化数据成员等。根据不同的功能和使用场景&#xff0c;C 提供了多种类型的构造函数&#xff1a; 1. 默认构造函数 (Defaul…

MySQL 索引最左匹配原则详解

MySQL 索引最左匹配原则详解 在使用 MySQL 数据库进行查询优化时&#xff0c;索引是一项至关重要的工具。理解索引的最左匹配原则及其底层实现原因&#xff0c;对于编写高效的 SQL 查询至关重要。本文将深入讲解 MySQL 索引最左匹配原则&#xff0c;为什么不满足最左匹配原则会…

【以图搜图代码实现】--犬类以图搜图示例

1.背景及目标 随着互联网技术的发展&#xff0c;图像数据呈指数级增长。图像搜索技术已经成为人们日常生活和工作中不可或缺的一部分&#xff0c;尤其是在电子商务、社交媒体、在线教育等领域。传统的基于文本的搜索引擎虽然已经非常成熟&#xff0c;但在面对大量无标签或标签…

GEE数据集:1996 年到 2020 年全球红树林观测数据集(JAXA)(更新)

目录 简介 数据集说明 数据集 代码 代码链接 结果 引用 许可 网址推荐 0代码在线构建地图应用 机器学习 简介 全球红树林观测 这项研究使用了日本宇宙航空研究开发机构&#xff08;JAXA&#xff09;提供的 L 波段合成孔径雷达&#xff08;SAR&#xff09;全球mask…

buff叠满!软考报名越晚,批次越晚?考试越难?

近日&#xff0c;各地软考办都发布了2024年下半年软考批次安排。 报考了软考中级-系统集成项目管理工程师&#xff08;简称“集成”&#xff09;的广东考生炸锅了&#xff0c;我会被分到11月11日&#xff08;周一&#xff09;的第四批次、第五批次考试吗&#xff1f; 软考批次是…

CSS 中的@media print 是干什么用的?

media print { ... } 是CSS中的一个媒体查询&#xff0c;它专门用于定义当内容被打印到纸张上时应该应用的样式规则。在这个查询块内&#xff0c;你可以设置各种样式&#xff0c;以确保打印输出的内容看起来整洁、专业&#xff0c;并且只包含必要的信息。 在你给出的例子中&am…

Spring - @Import注解

文章目录 基本用法源码分析ConfigurationClassPostProcessorConfigurationClass SourceClassgetImportsprocessImports处理 ImportSelectorImportSelector 接口DeferredImportSelector 处理 ImportBeanDefinitionRegistrarImportBeanDefinitionRegistrar 接口 处理Configuratio…