1.nvm介绍
在工作中,我们可能同时在进行2个或者多个不同的项目开发,每个项目的需求不同,进而不同项目必须依赖不同版本的NodeJS运行环境,这种情况下,对于维护多个版本的node将会是一件非常麻烦的事情,nvm就是为解决这个问题而产生的,他可以方便的在同一台设备上进行多个node版本之间切换。
2.nvm 下载以及使用
注意:安装nvm之前,一定要卸载已经安装的nodejs,确保电脑是没有安装nodejs 才能安装nvm版本
下载地址 https://github.com/coreybutler/nvm-windows/releases
查看nvm 版本
nvm -v
2.1.NVM配置镜像服务器
nvm毕竟还是国外的软件,由于一些特殊原因在国内访问时会有无法下载node的情况出现,这时我们只需要将nvm的服务器修改为国内的镜像服务器即可解决该问题。比如,可以通过如下代码将nvm的node镜像服务器修改为国内的阿里云:
nvm node_mirror https://npmmirror.com/mirrors/node/
命令:
nvm list 显示已经安装的node版本
nvm install 版本号 安装指定的node版本
nvm use 版本号 指定要使用的node版本
2.2.安装最新版本
2.3.安装最新稳定版
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 时的安全性和有效性。