使用 nvs 工具来切换 node 版本

简介: nvs是一款跨平台Node版本管理工具,支持Windows、macOS和Linux,可轻松切换不同项目的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

用下面三行命令即可:

export NVS_HOME="$HOME/.nvs"
git clone https://github.com/jasongin/nvs "$NVS_HOME"
. "$NVS_HOME/nvs.sh" install

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

nvs的常见命令

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

添加 Node 版本

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

nvs add lts

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

nvs add 16

更新当前的 Node 小版本

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

nvs upgrade

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

请在此添加图片描述

配置默认 Node 版本

全局指定

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

nvs link lts # 使用最新的 lts 版本,在所有的终端都生效

局部指定

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

nvs use 16 # 在当前的终端使用 16 版本,关闭后失效

查看所有安装的 Node 版本

nvs ls

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

请在此添加图片描述

其他命令

nvs --help // 查看其他命令的帮助

实用技巧

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

{
  "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 版本。

目录
相关文章
|
18小时前
|
JavaScript 前端开发 索引
JavaScript实战:探究数组循环截取的实现技巧
本文介绍如何用JavaScript实现数组循环截取4个元素的两种方法:for循环和slice。通过模运算处理索引滚动,结合setInterval定时切换,适用于视频列表轮播等场景,并对比了两种方式在代码简洁性、可读性与执行效率上的优劣。
14 1
|
18小时前
|
人工智能 前端开发 搜索推荐
你不知道的 CSS flex 陷阱
本文通过一个实际案例,深入解析了使用CSS Flexbox布局时,因`flex-wrap: wrap`与父容器高度设置导致的意外间距问题。作者指出,该现象源于`align-content`属性的默认行为(stretch),并通过设置`align-content: flex-start`有效解决。文章还对比了MDN与W3C文档对该属性默认值的差异,并系统梳理了`flex-wrap`和`align-content`的用法,帮助开发者更好掌握多行Flex布局的控制技巧。
18 0
你不知道的 CSS flex 陷阱
|
19小时前
|
人工智能 JavaScript UED
如何实现两个下拉选择框 select选中联动效果?
本文通过一个公司与产品联动的下拉选择案例,详细讲解了Element UI中双向联动下拉框的实现方法。涵盖数据过滤、回显处理、重置功能及注意事项,结合Vue实战代码,帮助开发者提升表单交互体验,适用于各类关联选择场景的开发参考。(238字)
21 0
如何实现两个下拉选择框 select选中联动效果?
|
19小时前
|
文字识别 开发者 Windows
Windows 上值得推荐的软件(第一弹)
本文推荐两款提升Windows使用效率的神器:Listary,实现文件快速搜索与路径跳转;uTools,集快捷启动、剪贴板智能识别与丰富插件于一体,助力高效办公。
20 0
Windows 上值得推荐的软件(第一弹)
|
18小时前
|
JavaScript 搜索推荐 测试技术
记录一次Vue项目打包卡在dist最后一步的问题
本文记录了一次Vue2项目打包卡在最后一步的排查过程。作者发现测试环境打包失败,通过回退配置定位到`code-inspector-plugin`插件及`.env.test`中`NODE_ENV=production`的错误配置,修正后问题解决。(239字)
17 0
|
1天前
|
API 数据格式 Windows
通过 KlineCharts 获取和展示印度股票数据
本文介绍如何通过KlineCharts对接印度股票数据,涵盖获取股票PID、调用K线接口、数据格式转换及图表渲染全流程。支持日线、小时线等周期,并可扩展实时更新功能,助力快速实现K线图展示。
|
17小时前
|
Web App开发 安全 前端开发
2026年建设网站的十个步骤
2026 年优质网站建设十大关键步骤涵盖需求分析、架构规划等全生命周期环节,以 PageAdmin 低代码平台为支撑,兼顾设计、开发、测试、部署与运维,可高效构建功能完善、体验优良的专业网站,契合多元需求与长期发展目标。
|
21小时前
|
Linux 虚拟化 iOS开发
UTM 4.7.5 发布 - 在 macOS 上优雅的使用 QEMU 虚拟化 Windows、Linux 和 macOS
UTM 4.7.5 发布 - 在 macOS 上优雅的使用 QEMU 虚拟化 Windows、Linux 和 macOS
30 0
UTM 4.7.5 发布 - 在 macOS 上优雅的使用 QEMU 虚拟化 Windows、Linux 和 macOS
|
16小时前
|
网络协议 网络安全 调度
APP架构DDoS防护新思路:分布式节点与SDK集成技术解析
近年来,随着网络攻击手段不断升级,游戏、直播、社交等实时性要求高的应用成为DDoS攻击的重灾区。传统的基于高防机房的防护方案在应对大规模流量攻击时面临诸多挑战,需要探索新的技术路径。
20 0
|
13小时前
|
弹性计算 容灾 数据库
2026年阿里云服务器地域与可用区全解析:分布、选择与机房查询
阿里云服务器的地域与可用区布局是保障业务稳定性、降低访问延迟的核心基础。其全球数据中心覆盖多国家和地区,国内以北京、杭州、上海等为核心节点,海外延伸至新加坡、东京、法兰克福等关键城市,不同地域与可用区在网络、容灾能力上差异显著。本文结合官方最新数据,详解地域与可用区的概念、分布规律、选择逻辑及机房地址查询方法,为业务部署提供客观参考。