nvm 与 nrm 的安装与使用

本文介绍了如何使用 nvm 切换 node.js 与 npm 版本,以及如何使用 nrm 切换 npm 下载源。

1. NVM

在开发不同项目时,可能会用到不同版本的 node.js 与 npm,最直接的的方式就是卸载当前版本的 node.js,然后下载安装另一个版本的 node.js。现在使用 nvm 可以帮助我们方便地切换 node.js 与 npm 版本。

先看看 github 上关于 nvm 的介绍
image.png
所以,nvm 是 node.js 版本管理工具。

1.1 卸载 node 与 npm

image.png

  • 在安装 nvm 之前,一定要先卸载已安装的 node.js,否则可能会出现版本冲突,无法切换 node.js 版本等问题
  • 除此之外,还要将之前安装的 npm 全局插件删除掉,否则可能提示 nvm 不是内部或外部命令的问题

windows 用户

  1. 设置中找到应用,搜索 node,卸载
    image.png
  2. 删除之前安装的 npm 全局插件,找到以下文件目录中的 npm 插件,删除
    C:\Users\a\AppData\Roaming\npm
    C:\Users\a\AppData\Roaming\npm-cache
    

macos 用户

image.png

  1. 要先卸载 npm
    sudo npm uninstall npm -g
    
  2. 再卸载 node.js
    sudo rm -rf /usr/local/lib/node /usr/local/lib/node\_modules /var/db/receipts/org.nodejs.\*
    sudo rm -rf /usr/local/include/node /Users/\$USER/.npm
    sudo rm /usr/local/bin/node
    sudo rm /usr/local/share/man/man1/node.1
    sudo rm /usr/local/lib/dtrace/node.d
    
  3. 验证是否卸载成功
    node -v
    npm -v
    

1.2 安装 nvm

打开 github,搜索 nvm,找到 nvm-sh/nvmcoreybutler/nvm-windows
image.png

windows 用户

  1. 点击进入 coreybutler/nvm-windows,找到 README.md,点击 Download Now
    image.png
  2. 在 releases 页面找到对应版本的 nvm 安装包,下载安装即可。这里使用了最新的安装包,按照 manual installation 指南操作。如果 NVM4W 安装后没有立马生效,重启 terminal 或 powershell image.png
  3. nvm 安装完成之后,在终端输入 nvm -v 测试,提示版本就表示成功
  4. 每次切换 node 版本,都需要重新全局 install 一下包管理器
    nvm use 14.0.0
    npm install -g yarn
    nvm use 12.0.1
    npm install -g yarn
    

macos 用户

  1. 点击进入 nvm-sh/nvm,找到 README.md,点击 Installing and Updating
    image.png

  2. 在终端输入安装脚本
    image.png

    curl -o- <https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh> | bash
    

    在苹果 10.15.7这个版本上(macOS Catalina),执行安装脚本
    image.png

  3. 安装确认

    在终端输入 nvm -v 测试

    • 提示版本就表示成功
    • 提示 zsh: command not found: nvm 说明未生效。

    输入命令 source \~/.bash\_profile 依旧为生效
    image.png

  4. 回到 README.md 中,寻找解决办法
    image.png
    重新打开一个终端,输入 nvm -v,好了

    nvm -v
    0.39.3
    

1.3 升级 nvm

windows用户

image.png

1.4 使用 nvm

windows 用户

输入 nvm 即可查看所用命令

  • nvm version:显示当前运行的 nvm 版本
  • nvm install <version>:可以指定版本安装,也可以输入 latest、lts
    image.png
  • nvm list:列出已安装的 node.js
    image.png
    当前 node 版本是14.18.1,对应 npm 版本是 6.14.15
    image.png
  • nvm use <version>:切换 node.js 版本
    image.png
  • nvm uninstall <version>:卸载指定版本的 node.js
  • 关于国区速度慢的小伙伴,在 nvm 目录下找到 settings.txt 文件,添加下面两行代码
    root: C:\nvm
    path: C:\Program Files\nodejs
    
    + node_mirror: <https://npm.taobao.org/mirrors/node/>
    + npm_mirror: <https://npm.taobao.org/mirrors/npm/>
    

    image.png

macos 用户

输入 nvm 即可查看所用命令
image.png

使用示例

Example:
  nvm install 8.0.0                     Install a specific version number
  nvm use 8.0                           Use the latest available 8.0.x release
  nvm run 6.10.3 app.js                 Run app.js using node 6.10.3
  nvm exec 4.8.3 node app.js            Run `node app.js` with the PATH pointing to node 4.8.3
  nvm alias default 8.1.0               Set default node version on a shell
  nvm alias default node                Always default to the latest available node version on a shell

  nvm install node                      Install the latest available version
  nvm use node                          Use the latest version
  nvm install --lts                     Install the latest LTS version
  nvm use --lts                         Use the latest LTS version

  nvm set-colors cgYmW                  Set text colors to cyan, green, bold yellow, magenta, and white

Note:
  to remove, delete, or uninstall nvm - just remove the `$NVM_DIR` folder (usually `~/.nvm`)
  • nvm --version:显示当前运行的 nvm 版本
    image.png

  • nvm install <version>:可以指定版本安装,也可以输入 latest、lts

    image.png

  • nvm list:列出已安装的 node.js
    image.png
    当前 node 版本是14.18.1,对应 npm 版本是 6.14.15
    image.png

  • nvm use <version>:切换 node.js 版本
    image.png

  • nvm uninstall <version>:卸载指定版本的 node.js

2. NRM

nrm 全称 NPM registry manager,镜像源管理工具。

2.1 依赖包的源从哪里来?

直接使用 npm 命令安装依赖包,安装速度可能会很慢甚至出现异常,因为使用 npm 命令安装依赖包默认是从国外服务器下载的。

当我们 npm install 速度太慢或出现异常,亦或要使用公司内部定制的私有源时,就要切换 npm 源了。

如何切换 npm 源?

  • 查看当前 npm 源

    $ npm config get registry
    
  • npm 源设置为 taobao 镜像源

    $ npm config set registry=https://registry.npm.taobao.org/
    

    切换了源,接下来就要 npm install 了,其实也可以直接指定源去安装依赖包

    $ npm install --registry=https://registry.npm.taobao.org/
    
  • 切换回 npm 源

    $ npm config set registry=https://registry.npmjs.org/
    

上面的操作仅仅是修改了下载依赖包的源,npm 指令还是不变的,每次切换源都要输一长串源地址,这就很烦!那我们想,能否在使用 npm 源与 taobao 镜像源时,使用不同的指令呢?

2.2 不得不说的 taobao 镜像源

image.png

  • 我们可以使用淘宝定制的 cnpm命令行工具 代替默认的 npm

    $ npm install -g cnpm --registry=https://registry.npmmirror.com
    
  • 安装模块

    $ cnpm install [moduleName]
    
  • 同步模块

    直接通过 sync 命令马上从 npm 同步一个模块, 只有 cnpm 命令行才有此功能

    $ cnpm sync [moduleName]
    

这样,我们就可以使用 npm 命令行去操作 npm 源,使用 cnpm 命令行去操作 taobao 镜像源。

2.3 nrm — NPM registry manager

npm 源的地址是 registry.npmjs.org/ ,taobao 镜像源的地址是 registry.npmmirror.com/ ,依赖包的源肯定不止这俩,源地址一多,就需要集中管理,那 nrm 就是我们要的 npm 依赖包管理工具

2.4 安装与使用 nrm

  1. 全局安装 nrm

    $ npm install -g nrm@1.0.0
    $ nrm -V
    $ nrm --version
    

    image.png

  2. 添加源

    主要适用于公司内部定制的私有源

    $ nrm add [自定义源名称] 源地址
    $ nrm add <registry> <url>
    $ nrm add yarn https://registry.yarnpkg.com/
    $ nrm add taobao https://registry.npmmirror.com/
    
  3. 查看源

    $ nrm ls
    
    
    * npm ------- https://registry.npmjs.org/
      yarn ------ https://registry.yarnpkg.com/
      tencent --- https://mirrors.cloud.tencent.com/npm/
      cnpm ------ https://r.cnpmjs.org/
      taobao ---- https://registry.npmmirror.com/
      npmMirror - https://skimdb.npmjs.com/registry/
    
  4. 切换源

    nrm use taobao
    
  5. 测试源的响应速度

    $ nrm test
    
    
      npm ---- 843ms
      cnpm --- 13238ms
      taobao - 12287ms
      nj ----- Fetch Error
      rednpm - 175ms
      npmMirror  959ms
      edunpm - Fetch Error
    * coding - 12314ms
    
  6. 删除源

    $ nrm del coding
    

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYh4tOpG' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片