使用 nvs 工具来切换 node 版本

2024-06-08 22:46:16 浏览数 (1)

目录

  • 介绍
  • nvs 的安装方法
    • Windows 安装nvs
    • macOS安装 nvs
  • nvs的常见命令
    • 添加 Node 版本
    • 更新当前的 Node 小版本
    • 配置默认 Node 版本
    • 全局指定
    • 局部指定
    • 查看所有安装的 Node 版本
    • 其他命令
  • 实用技巧
  • 总结

介绍

nvs 是一款十分方便的 node 版本的管理工具,用来满足不同项目对 node 版本的要求。

比方说我公司开发的旧项目A,用的是 Node.js 12 版本,而项目B用的最开始用的是 Node.js 14,后来改成了 Node16,不排除将来会升级到更高的版本。

新老项目并存,项目依赖老旧是历史遗留问题,如果电脑只装了一个 node 版本,显然是不满足实际开发的。因此我们需要一款方便好用的、跨平台的 node 版本管理工具。

类似的还有 nvm 之类的,只是我个人更喜欢用 nvs,因为他跨平台,安装也很方便。

在本文中,我将根据跟人的实际开发经验,推荐 nvs 给大家使用。

nvs 的安装方法

nvs 官方仓库地址如下:

jasongin/nvs: Node Version Switcher - A cross-platform tool for switching between versions and forks of Node.js

nvs 有跨平台的特性,支持 Windows 、 macOS和 Linux 系统,下面分别介绍两种安装方法。

Windows 安装nvs

推荐通过 msi 的方式安装,就跟正常安装软件一下,双击下一步即可:

https://github.com/jasongin/nvs/releases

macOS安装 nvs

用下面三行命令即可:

代码语言:vue复制
export NVS_HOME="$HOME/.nvs"
git clone https://github.com/jasongin/nvs "$NVS_HOME"
. "$NVS_HOME/nvs.sh" install

如果 github 访问不了,可以自行想办法加速一下,这里不宜多展开。

nvs的常见命令

nvs我个人常用的命令就那么几个,主要是添加、单次使用、永久使用这样子。使用上有些小细节,稍微注意下就好。

添加 Node 版本

如果你想安装最新的 LTS 版本,可以用命令:

代码语言:vue复制
nvs add lts

如果你需要新增一个 Node.js 16的版本,可以用以下命令:

代码语言:vue复制
nvs add 16

更新当前的 Node 小版本

如果你想要升级 Node 小版本,比方说从 20.13.1升级到20.14.0(当前大版本的最新版),可以使用如下命令:

代码语言:vue复制
nvs upgrade

随后就可以更新了。使用前可以用 nvs ls看下当前版本是多少,下面是我更新的一个示例:

配置默认 Node 版本

全局指定

这个适用于绝大部分情况,指定默认的 node 版本。

代码语言:vue复制
nvs link lts # 使用最新的 lts 版本,在所有的终端都生效

局部指定

这个适用于偶尔用一次指定版本的情况,当你的终端关闭后,下次启动默认还是之前 nvs link 过的版本。

代码语言:vue复制
nvs use 16 # 在当前的终端使用 16 版本,关闭后失效

查看所有安装的 Node 版本

代码语言:vue复制
nvs ls

比方说我安装了以下版本,当前指向的版本是 node/16.15.0

其他命令

代码语言:vue复制
nvs --help // 查看其他命令的帮助

实用技巧

如果你不想每次都手动切换 node 版本,希望根据项目配置来,那么你可以把 nvs use 16这样的命令,写到 Vue 项目的 pre 中。package.json示例如下:

代码语言:vue复制
{
  "scripts": {
    "predev": "nvs use 16",
    "dev": "vue-cli-service serve"
    "prebuild": "nvs use 16",
    "dev": "vue-cli-service build"
  }
}

这样你每次启动或者打包项目的之前,都会先执行 pre 开头的 script,然后在执行你当前执行的命令。

总结

nvs 可以用来很方便的下载安装、切换 Node 版本,适用于多项目开发。掌握了 nvs 的基本使用,可以很方便的在各个项目的开发环境相对独立,互不影响。必要时可以把 nvs 的命令写到项目配置中,这样就不需要额外记忆特定项目需要什么 Node 版本了,也方便从命令中查看项目所需要的 Node 版本。

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

0 人点赞