1.nvm介绍

在工作中,我们可能同时在进行2个或者多个不同的项目开发,每个项目的需求不同,进而不同项目必须依赖不同版本的NodeJS运行环境,这种情况下,对于维护多个版本的node将会是一件非常麻烦的事情,nvm就是为解决这个问题而产生的,他可以方便的在同一台设备上进行多个node版本之间切换。

2.nvm 下载以及使用

注意:安装nvm之前,一定要卸载已经安装的nodejs,确保电脑是没有安装nodejs 才能安装nvm版本

下载地址 https://github.com/coreybutler/nvm-windows/releases

nvm镜像_学习


查看nvm 版本

nvm -v

nvm镜像_学习_02

2.1.NVM配置镜像服务器

nvm毕竟还是国外的软件,由于一些特殊原因在国内访问时会有无法下载node的情况出现,这时我们只需要将nvm的服务器修改为国内的镜像服务器即可解决该问题。比如,可以通过如下代码将nvm的node镜像服务器修改为国内的阿里云:

nvm node_mirror https://npmmirror.com/mirrors/node/

nvm镜像_nvm镜像_03


命令:

nvm list         显示已经安装的node版本
nvm install 版本号    安装指定的node版本
nvm use 版本号        指定要使用的node版本

nvm镜像_学习_04

2.2.安装最新版本

nvm镜像_镜像源_05


nvm镜像_镜像源_06

2.3.安装最新稳定版

nvm镜像_删除文件_07

nvm镜像_nvm镜像_08

3.nrm 的使用 (可以快速切换 下载镜像)

3.1. 介绍

nrm(npm registry manager) 是 npm 的镜像源管理工具.,有时候国外资源太慢,使用 nrm 可以快速的在 npm 源之间切换

3.2. 安装

npm install -g nrm

3.3. 基本使用

  • 查看可选择的源
nrm ls
  • 切换到对应的镜像源
nrm use 对应的镜像
  • 删除镜像源
nrm del 名字
  • 增加镜像源
nrm add registry http://registry.npm.frp/trmap.cn/
  • 测试镜像源速度
nrm test npm

4. Rimraf 可以快速的删除 node_modules

Rimraf是一个Node.js模块,它提供了一种在Node.js环境中删除文件和文件夹的方法。它的名字来源于UNIX命令rm -rf,其中rm表示删除,-rf表示递归删除文件夹和其内容。

4.1.原理

其原理可以简单概括如下:

  • 递归遍历文件系统: Rimraf 首先会递归地遍历指定的路径,包括其中的所有子目录和文件。
  • 删除文件和文件夹: 在遍历过程中,对每个文件和文件夹执行删除操作。对于文件,直接删除;对于目录,首先删除其中的所有文件和子目录,然后再删除该目录本身。
  • 异常处理和权限控制: Rimraf 在执行过程中会处理各种异常情况,如文件不存在、权限不足等。通常会尝试以递归方式修改权限或者忽略某些特定的错误。
  • 性能优化: Rimraf 在设计上考虑了性能问题,尽可能地采用异步操作,同时支持 Promise API,使得在 Node.js 的异步环境中可以高效地执行文件和目录的删除操作。
  • 跨平台兼容性: Rimraf 被设计为跨平台的模块,可以在 Windows、Linux 和 macOS 等操作系统上运行。它会针对不同的操作系统使用相应的文件系统 API,确保在不同平台下的兼容性和正确性。

总体来说,Rimraf 的核心原理是递归地遍历文件系统并执行删除操作,通过处理异常、优化性能和跨平台兼容性,确保能够可靠地删除指定路径下的所有文件和文件夹。

4.2.安装

  • 全局安装:
npm install rimraf -g
  • 局部安装:
npm install rimraf --save-dev

4.3.使用方式

Node.js脚本中,通过require引入rimraf,然后调用它来删除文件或文件夹。
例如:

var rimraf = require('rimraf');
rimraf('/path/to/directory', function (err) { 
  // 当删除完成或发生错误时,这个回调函数会被调用
  if (err) throw err;
});

npm脚本中,可以直接使用rimraf命令来删除文件或文件夹。例如,在package.json文件中:

{
  "scripts": {
    "clean": "rimraf dist"
  }
}

当你运行npm run clean时,rimraf会删除dist文件夹。

4.4.快速删除node_modules文件夹(******** 经常使用 ********)

Rimraf在删除大型文件夹,如node_modules时,特别有用。由于node_modules文件夹通常包含大量的子文件夹和文件,使用传统的文件系统API删除它们可能会非常慢。而Rimraf可以更快地完成这个任务。

如果你是全局安装的,你可以直接执行

rimraf node_modules

如果你是项目依赖安装,你可以执行

npx rimraf node_modules

当使用 Rimraf 删除文件和文件夹时,请务必注意以下几点:

  • 慎重选择删除目标: Rimraf 将递归删除指定的目录及其所有子文件和子文件夹。确保你删除的是正确的目标,避免意外删除重要文件。
  • 处理删除中的错误: 如果删除过程中发生错误,Rimraf 将立即停止删除操作并调用指定的回调函数。因此,始终为 Rimraf 调用提供一个可靠的回调函数,以处理潜在的错误情况。

这些注意事项将有助于确保使用 Rimraf 时的安全性和有效性。