使用nvm管理node版本

本文介绍了如何检查已安装的Node.js和npm版本,以及在需要管理多个Node.js版本时使用nvm进行安装、卸载和切换的步骤。同时提及了npx的作用和nrm用于管理npm源的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先看下本机是否已经安装了node。

执行 node -v,查看node版本

-> % node -v
v19.2.0

执行 npm -v,查看npm版本

-> % npm -v
8.19.3

之前是在node的官网Node.js — Download Node.js® 下载的node pkg安装包直接安装,node安装的过程中也会默认安装好对应的npm版本。

最近,需要运行一个比较古老的项目,这个项目只能在node比较旧的版本中运行,需要在同一台电脑上安装多个node版本。

这种情况,就可以用nvm来管理node版本了。

之前使用python包管理器的时候,如果在Python包管理器安装之前,本机就已经安装了Python的某个版本,在安装了Python包管理器之后,也可以通过配置来管理本机不是通过Python包管理器安装的Python版本。

但是,找了下,发现都是建议卸载已经安装的node,然后安装nvm后,再重新安装node版本。

所以,下载安装nvm之前,需要卸载已经使用pkg安装的node,可以使用pkgutil来卸载mac pkg安装过的包

# list all your installed packages
pkgutil --pkgs

# show your package info
pkgutil --pkg-info <your-package-id>

# list your package files
pkgutil --files <your-package-id>

# change to the directory which your package is installed into
cd /
# remote files
pkgutil --only-files --files <your-package-id> | tr '\n' '\0' | xargs -n 1 -0 sudo rm -if
# remote directories
pkgutil --only-dirs --files <your-package-id> | tail -r | tr '\n' '\0' | xargs -n 1 -0 sudo rmdir

在我的电脑上执行了下,发现没有用pkg安装过node

-> % pkgutil --pkgs
com.apple.pkg.InstallAssistant.macOSBigSur
com.apple.files.data-template
com.apple.pkg.BootCampESD
com.apple.pkg.MobileDeviceOnDemand.1420A54
com.apple.pkg.CoreTypes.1420A54
com.apple.pkg.CoreTypes.1500A24
com.apple.pkg.InstallAssistant.macOSSonoma
com.apple.pkg.XcodeSystemResources
com.apple.pkg.InstallAssistant.macOSMonterey
org.openvpn.client.pkg
com.oracle.jdk-11.0.2
com.kyome.RunCat
org.golang.go
com.amazon.aws.cli2
com.apple.pkg.MobileAssets
org.netbeans.ide.javase.12.2
org.netbeans.ide.php.12.2
com.teamviewer.teamviewerAgent
com.tencent.qq
com.tencent.xinWeChat
org.netbeans.ide.nbide.12.2
org.openvpn.helper_framework.pkg
com.logitech.gaming
com.arvistech.focuscity
org.netbeans.ide.webcommon.12.2
com.gingerlabs.Notability
com.kingsoft.wpsoffice.mac
com.apple.pkg.Xcode
com.cocoa.tomato
com.teamviewer.teamviewer
org.openvpn.client_framework.pkg
com.youdao.note.YoudaoNoteMac
com.teamviewer.teamviewerPriviledgedHelper
com.netease.macmail
us.zoom.pkg.videomeeting
com.teamviewer.teamviewerAuthPlugin
com.gingerlabs.NotabilityMac
com.lukilabs.lukiapp
org.openvpn.client_launch.pkg
com.teamviewer.teamviewerRestarter
org.openvpn.helper_launch.pkg
com.netease.163music
com.wutian.weibo
org.netbeans.ide.javaee.12.2
org.openvpn.client_uninstall.pkg
com.apple.pkg.Pages10
com.apple.pkg.iMovie_AppStore
com.apple.pkg.GarageBand_AppStore
com.apple.pkg.Keynote10
com.apple.pkg.Numbers10

那我应该是用brew install node执行安装的,可以使用brew info node来查看node是否有安装过,显示如下,有一行Installed,说明node是使用brew install安装的,版本是19.2.0,跟我上面执行node -v输出的版本是一致的,那这样就好办了,直接执行brew uninstall node 

-> % brew info node
==> node: stable 22.1.0 (bottled), HEAD
Platform built on V8 to build network applications
https://nodejs.org/
Installed
/usr/local/Cellar/node/19.2.0 (1,963 files, 52.5MB) *
  Poured from bottle on 2022-12-03 at 22:24:29
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/n/node.rb
License: MIT
==> Dependencies
Build: pkg-config ✘, python@3.12 ✘
Required: brotli ✔, c-ares ✔, icu4c ✔, libnghttp2 ✔, libuv ✔, openssl@3 ✔
==> Options
--HEAD
	Install HEAD version
==> Analytics
install: 240,132 (30 days), 662,715 (90 days), 2,547,545 (365 days)
install-on-request: 208,567 (30 days), 579,191 (90 days), 2,226,461 (365 days)
build-error: 1,028 (30 days)

可能有些人刚接触node,对以下几个概念还不熟悉:

node:是一个基于 Chrome V8 引擎的 JS 运行环境。

npm:是 node.js 默认的包管理系统(用 JavaScript 编写的),在安装的 node 的时候,npm 也会跟着一起安装,管理 node 中的第三方插件。

npx:npm 从 v5.2.0 开始新增了 npx 命令,>= 该版本会自动安装 npx,附带:npx 有什么作用跟意义?为什么要有 npx?什么场景使用?。

nrm:是一个 npm 源管理工具,使用它可以快速切换 npm 源,默认是官方源,当 npm 下载包过慢时,可能需要切换到第三方源(例如:淘宝、科大...),还有公司私有源地址等等。

nvm:node 版本管理器,也就是说:一个 nvm 可以管理多个 node 版本(包含 npm 与 npx),可以方便快捷的 安装、切换 不同版本的 node。

总的来说,nvm 管理 node (包含 npm 与 npx) 的版本,npm 可以管理 node 的第三方插件,nrm 可以管理 npm 的源地址

安装nvm成功后,选择版本

-> % nvm use 16.13.0
Now using node v16.13.0 (npm v8.1.0)

-> % node -v
v16.13.0

nvm常见的一些命令,参考如下

  • nvm ls 列出安装 node 的所有版本
  • nvm current 显示当前使用的版本
  • nvm install 安装指定的版本,如 nvm install v8.13.0
  • nvm uninstall 卸载指定的版本
  • nvm use node-version 切换使用指定的版本
  • nvm alias default v12.18.4 设置默认 node 版本
  • nvm deactivate 解除当前版本绑定
  • nvm ls-remote 获取远程可用版本
  • nvm list available 获取可用的 node 版本列表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值