您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > javascript

告别Node.js版本困扰,轻松切换开发环境!

时间:2023-11-08 14:05:42  来源:微信公众号  作者:陌溪教你学编程

最近,在下载别人的开源项目进行学习的时候,总是因为 Node 环境问题导致没法依赖无法正常安装,因为人家开源项目限制了一定要高于某个版本,差点劝退了我。

告别Node.js版本困扰,轻松切换开发环境!Node版本限制

因为平时偶尔写写蘑菇的前端代码,所以我本地安装的 Node.js 版本一直是 14.x,由于不同 Node 版本之间也没有很好的兼容,所以会出现各种诡异的版本依赖报错。按照原来的做法,我是直接在 Node 官网又下载一个版本,然后把环境变量改成对应版本的,这样就可以正常安装了。等到使用完后,再修改回原来的版本,这一来一回真是太折腾人了。

这个问题应该在我们日常开发中应该会经常遇到,尤其是喜欢上开源网站上下载别人项目捣鼓的同学,每个项目之间的技术栈不同,使用的 Node 版本也各不相同,如果没有一个管理工具,那上面我的那种方式将会特别麻烦,直到我在网上冲浪的时候,发现别人都在使用 nvm 进行任意 Node 版本的切换,真是泰裤辣。

告别Node.js版本困扰,轻松切换开发环境!多个Node版本切换

nvm是什么

nvm 全英文也叫 node.js version management,是一个 nodejs 的版本管理工具,为了解决 node.js 各种版本存在不兼容现象,可以通过它可以安装和切换不同版本的 node.js。

这不就是为我这种开源学习者量身定制的么,后悔没早点安装它。

另外 nvm 也是完全开源的,如果是 windows 用户的话,可以直接访问开源的 Github 项目 nvm-windows。

https://github.com/coreybutler/nvm-windows
  • 1.

如果是 mac 或者 linux 系统的用户的话,去下载 nwm 即可

https://github.com/nvm-sh/nvm
  • 1.

这里说一下:nvm 和 nvm-windows 的区别

  • nvm:Node.js 版本管理工具的原始实现,可以在 macOS 和 Linux 等类 Unix 系统上运行。
  • nvm-windows:专为 Windows 操作系统开发的 Node.js 版本管理工具,以在 Windows 上轻松管理 Node.js 版本。

但是虽然这两个开源软件名字是不同,他们的命令和使用是完全一致的,这个小伙伴根据自己的操作系统自行选择即可。

同时,除了这里提到的 nvm 和 nvm-windows 外,还有另外一款桌面级的Node.js 版本管理软件:nvm-desktop

  • nvm-desktop:是一个以可视化界面操作方式管理多个 Node 版本的桌面应用,使用 Electron 构建(支持 Macos 和 Windows 系统)。通过该应用,您可以快速安装和使用不同版本的 Node。

如果觉得命令的方式来操作 Node 版本切换过于麻烦 ,小伙伴也可以使用 nvm-desktop ,在下文中,陌溪也会亲自体验一波。

nvm下载

首先,我使用的是 Windows 电脑,所以需要去 Github Release 发行版去下载 nvm-windows

nvm-windows下载地址:
https://github.com/coreybutler/nvm-windows/releases/tag/1.1.11
  • 1.
  • 2.

然后选择 exe 结尾的可执行文件,点击下载即可

告别Node.js版本困扰,轻松切换开发环境!图片

下载nvm

下载完成后,直接点击安装即可,如果小伙伴电脑原来已经安装了 Node,在安装 nvm过程中可能会出现需要覆盖的确认项,直接同意覆盖即可。

如果是 mac 或者 linux 的用户,直接使用命令即可一键安装

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
  • 1.

安装完成后,使用 nvm 命令,如果出现了对应的版本,以及命令的帮助信息,即表示成功安装 nvm

告别Node.js版本困扰,轻松切换开发环境!安装成功

nvm配置

在安装好 NVM 后,首先需要打开安装目录,然后找到 settings.txt 文件

告别Node.js版本困扰,轻松切换开发环境!配置镜像

在文件里需要配置对应的 node_mirror 和 npm_mirror 的镜像地址,下面是两个配置的作用:

  • node_mirror:是用于指定 Node.js 下载镜像的环境变量或配置选项。当你在安装 Node.js 时,Node.js 安装程序可能会从官方源下载 Node.js 的二进制文件。然而,有时官方源速度较慢或不稳定,因此你可以使用 node_mirror 来指定一个替代的镜像源,以提高下载速度和可靠性。
  • npm_mirror:是用于指定 npm 包管理器下载镜像的环境变量或配置选项。当你使用 npm 安装 Node.js 包时,npm 会从默认的全球源下载包。然而,有时这些全球源可能不够快或不够稳定。

所以,我们只需要在这个文件下面,追加淘宝的镜像地址即可:

node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/
  • 1.
  • 2.

NVM安装不同Node版本

在安装前,我们先了解一下常用的几个命令

  • nvm arch:显示node是运行在32位还是64位。
  • nvm install[arch] :安装node, version是特定版本也可以是最新稳定版本latest。可选参数arch指定安装32位还是64位版本,默认是系统位数。可以添加--insecure绕过远程服务器的SSL。
  • nvm list [avAIlable] :显示已安装的列表。可选参数available,显示可安装的所有版本。list可简化为ls。
  • nvm on :开启node.js版本管理。
  • nvm off :关闭node.js版本管理。
  • nvm proxy [url] :设置下载代理。不加可选参数url,显示当前代理。将url设置为none则移除代理。
  • nvm node_mirror [url] :设置node镜像。如果不写url,则使用默认url。设置后可至安装目录settings.txt文件查看,也可直接在该文件操作。
  • nvm npm_mirror [url] :设置npm镜像。如果不写url,则使用默认url。设置后可至安装目录settings.txt文件查看,也可直接在该文件操作。
  • nvm uninstall :卸载指定版本node。
  • nvm use [version] [arch] :使用指定版本node。可指定32/64位。
  • nvm root [path] :设置存储不同版本node的目录。如果未设置,默认使用当前目录。
  • nvm version :显示nvm版本。version可简化为v。

首先,以蘑菇为例,推荐的 Node 版本是 14.x,所以我们需要使用 npm list available 去查看对应的版本

告别Node.js版本困扰,轻松切换开发环境!可用的Node版本

可以看到,安装的列表里竟然没有蘑菇推荐的:14.x,(这。。看来这个版本已经太老了,下次得给蘑菇升级一下版本依赖了)

如果没有找到对应的版本,在列表下方的一行字体里也说了,这个是部分的列表信息,如果要完整的可以直接跳转到 Node 官网查看

This is a partial list. For a complete list, visit https://nodejs.org/en/download/releases
  • 1.

我们进入到官网,即可看到 14.21.3 是目前还在维护的一个 node 版本,并且在 2023-02-16 还在更新

告别Node.js版本困扰,轻松切换开发环境!官网寻找

好,那我们就安装 14.21.3 ,使用下面命令安装即可(强烈建议按照上面的方式,先配置好镜像地址,不然安装会很慢..)

nvm install 14.21.3
  • 1.

告别Node.js版本困扰,轻松切换开发环境!安装Node成功

安装完成后,我们可以用 nvm list 进行查看,可以看到 我们系统中已经有了这个版本的 Node

告别Node.js版本困扰,轻松切换开发环境!图片

但是现在还没有激活这个 Node,需要使用 npm use 命令进行激活使用,激活后就可以看到当前版本正在使用中

npm use 14.21.3
  • 1.

告别Node.js版本困扰,轻松切换开发环境!激活node

激活后,我们查看一下当前的 npm 版本,可以看到已经成功切换到指定版本的 node 版本了

告别Node.js版本困扰,轻松切换开发环境!查看node版本

切换到14.x后,就正常的运行蘑菇博客项目了~

告别Node.js版本困扰,轻松切换开发环境!运行蘑菇

 

同时,我们还可以继续安装 其它版本的 Node,例如上面我下载的一个开源软件最低要求 16.x 版本的 Node,我们按照上述方法,找到一个合适的版本

nvm install 16.19.0
  • 1.

然后在查看目前系统中已经存在的版本,可以看到现在已经有两套 Node 版本了,一个是 14.x,一个是 16.x,我们可以按照自己项目依赖的版本,进行切换即可

告别Node.js版本困扰,轻松切换开发环境!图片

如果最后不想使用这个版本的 Node 了,也可以直接使用 nvm uninstall 命令卸载即可

nvm uninstall 14.21.3
  • 1.

告别Node.js版本困扰,轻松切换开发环境!图片

好了,关于 nvm 的使用就到这里了,小伙伴们赶紧使用起来~

nvm-desktop 初使用

介绍完 nvm 后,我们再来看另外一个桌面级的 node 版本管理器:nvm-desktop。

nvm-desktop 是一个用 Electron 开发的一个桌面应用,这个应用提供了以可视化界面操作的形式让用户为自己的操作系统设置和切换Node版本的能力,而nvm-desktop 想要具备这种能力就离不开 nvmd-command ,因为具体的功能是在 nvmd-command 中实现的。

nvmd-command 是一个单一、快速的本机可执行文件,没有外部依赖项,并且使用 Rust 构建,它依赖 nvm-desktop 的设置来识别出正确的 Node 版本。

首先,我们在 Github 中找到 nvm-desktop 下载地址

https://github.com/1111mp/nvm-desktop/releases
  • 1.

然后找到 windows 版本,选择 exe 后缀的文件进行下载

告别Node.js版本困扰,轻松切换开发环境!下载安装包

下载完成后进行安装,最后运行成功后的页面如下所示,这个效果就和我们命令行的 nvm list 类似,会展示所有可安装的 node 版本信息

告别Node.js版本困扰,轻松切换开发环境!运行截图

并且,上面展示的 node 版本更全,比如:蘑菇需要用到的 16.x,在这里也都可以找到

告别Node.js版本困扰,轻松切换开发环境!更多的Node版本

在安装 Node 前,也可以设置一下 node 的镜像地址,从而加速 node 的访问

告别Node.js版本困扰,轻松切换开发环境!设置镜像地址

小伙伴根据自己项目的需要,使用对应版本即可

告别Node.js版本困扰,轻松切换开发环境!安装依赖

安装完成后,我们切换到已安装的目录,点击更多选项,即可直接应用该版本,效果上面使用的 nvm use 也是一样的

告别Node.js版本困扰,轻松切换开发环境!切换成功

切换完成后,小伙伴也可以正常的使用 Node 了,如果要使用不同的版本,直接就去所有版本那里寻找即可。

关于如何优雅的切换 Node 版本就讲到这里了~



Tags:Node.js   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
理解 Node.js 中的事件循环
你已经使用 Node.js 一段时间了,构建了一些应用程序,尝试了不同的模块,甚至对异步编程感到很舒适。但是有些事情一直在困扰着你——事件循环(Event Loop)。如果你像我...【详细内容】
2024-01-05  Search: Node.js  点击:(110)  评论:(0)  加入收藏
让Node.js加速你的网络应用开发之旅
Node.js 是一个基于Chrome V8 引擎的JavaScript运行时,用于构建高性能、可伸缩的网络应用。它的出现在很大程度上改变了后端开发的方式,并成为了现代Web开发中不可或缺的一部...【详细内容】
2023-12-13  Search: Node.js  点击:(169)  评论:(0)  加入收藏
告别Node.js版本困扰,轻松切换开发环境!
最近,在下载别人的开源项目进行学习的时候,总是因为 Node 环境问题导致没法依赖无法正常安装,因为人家开源项目限制了一定要高于某个版本,差点劝退了我。Node版本限制因为平时偶...【详细内容】
2023-11-08  Search: Node.js  点击:(275)  评论:(0)  加入收藏
19 种常见的 JavaScript 和 Node.js 错误
译者 | 刘汪洋审校 | 重楼速度、性能和响应性在 Web 开发中起着至关重要的作用,尤其是在使用 JavaScript 和 Node.js 开发时尤为重要。如果一个网站响应缓慢或界面卡顿,就会让...【详细内容】
2023-11-03  Search: Node.js  点击:(192)  评论:(0)  加入收藏
通过这个技术,浏览器可以运行Node.js、Rust、Python、PHP、C++、Java代码了!
近日,WebContainers 发布重要更新,WASI(WebAssembly 系统接口)已全面集成到 WebContainers 中。这是一个重要里程碑,它扩大了可以使用浏览器执行的操作,是 Web 开发的全新范例,允许...【详细内容】
2023-10-13  Search: Node.js  点击:(276)  评论:(0)  加入收藏
为什么Node.js 是后端开发的规则改变者
作者丨P. Rehan编译丨诺亚“Node.js有危险了!”“任何能够自救的开发人员都应该尽快迁移到另一个后端环境!”JavaScript的仇恨者说。不用理会这些言论。Node.js将继续存在,并...【详细内容】
2023-09-09  Search: Node.js  点击:(247)  评论:(0)  加入收藏
Node.js 终于原生支持 .env 文件了!
近日,Node.js 团队核心成员 Ulises Gascón 在社交平台表示,Node.js 20.6 版本将原生支持 .env 文件,该版本计划于 8 月 28 日发布。下面就来看看 .env 文件是什么,有什么...【详细内容】
2023-08-29  Search: Node.js  点击:(385)  评论:(0)  加入收藏
将 Node.js 应用程序容器化的七种方法
本文列出了七种容器化 node.js 应用程序的方法,让我们简要地看一下它们。在过去的五年里,Node.js 一直是严肃程序员的最爱。最大吞吐量的 JavaScript 运行时环境是一个免费的...【详细内容】
2023-03-24  Search: Node.js  点击:(261)  评论:(0)  加入收藏
十个优质的基于Node.js的CMS 内容管理平台
内容管理系统 (「CMS」) 使没有强大技术背景的人也能够轻松发布内容。我们可以使用 「CMS」 来管理我们的内容和交付。市面上有不同类型的 「CMS」,它们执行不同的目的并具有...【详细内容】
2023-03-03  Search: Node.js  点击:(278)  评论:(0)  加入收藏
Node.js 是如何跑起来的
本文为来自 字节跳动-国际化电商-S 项目团队 成员的文章,已授权 ELab 发布。一个 TCP 连接的案例​TCP 服务端​const net = require('net');const server = new net...【详细内容】
2023-03-03  Search: Node.js  点击:(162)  评论:(0)  加入收藏
▌简易百科推荐
17 个你需要知道的 JavaScript 优化技巧
你可能一直在使用JavaScript搞开发,但很多时候你可能对它提供的最新功能并不感冒,尽管这些功能在无需编写额外代码的情况下就可以解决你的问题。作为前端开发人员,我们必须了解...【详细内容】
2024-04-03  前端新世界  微信公众号  Tags:JavaScript   点击:(4)  评论:(0)  加入收藏
你不可不知的 15 个 JavaScript 小贴士
在掌握如何编写JavaScript代码之后,那么就进阶到实践——如何真正地解决问题。我们需要更改JS代码使其更简单、更易于阅读,因为这样的程序更易于团队成员之间紧密协...【详细内容】
2024-03-21  前端新世界  微信公众号  Tags:JavaScript   点击:(25)  评论:(0)  加入收藏
又出新JS运行时了!JS运行时大盘点
Node.js是基于Google V8引擎的JavaScript运行时,以非阻塞I/O和事件驱动架构为特色,实现全栈开发。它跨平台且拥有丰富的生态系统,但也面临安全性、TypeScript支持和性能等挑战...【详细内容】
2024-03-21  前端充电宝  微信公众号  Tags:JS   点击:(23)  评论:(0)  加入收藏
构建一个通用灵活的JavaScript插件系统?看完你也会!
在软件开发中,插件系统为应用程序提供了巨大的灵活性和可扩展性。它们允许开发者在不修改核心代码的情况下扩展和定制应用程序的功能。本文将详细介绍如何构建一个灵活的Java...【详细内容】
2024-03-20  前端历险记  微信公众号  Tags:JavaScript   点击:(20)  评论:(0)  加入收藏
对JavaScript代码压缩有什么好处?
对JavaScript代码进行压缩主要带来以下好处: 减小文件大小:通过移除代码中的空白符、换行符、注释,以及缩短变量名等方式,可以显著减小JavaScript文件的大小。这有助于减少网页...【详细内容】
2024-03-13  WangLiwen    Tags:JavaScript   点击:(2)  评论:(0)  加入收藏
跨端轻量JavaScript引擎的实现与探索
一、JavaScript 1.JavaScript语言JavaScript是ECMAScript的实现,由ECMA 39(欧洲计算机制造商协会39号技术委员会)负责制定ECMAScript标准。ECMAScript发展史: 2.JavaScript...【详细内容】
2024-03-12  京东云开发者    Tags:JavaScript   点击:(2)  评论:(0)  加入收藏
面向AI工程的五大JavaScript工具
令许多人惊讶的是,一向在Web开发领域中大放异彩的JavaScript在开发使用大语言模型(LLM)的应用程序方面同样大有价值。我们在本文中将介绍面向AI工程的五大工具,并为希望将LLM...【详细内容】
2024-02-06    51CTO  Tags:JavaScript   点击:(52)  评论:(0)  加入收藏
JS小知识,使用这6个小技巧,避免过多的使用 if 语句
最近在重构我的代码时,我注意到早期的代码使用了太多的 if 语句,达到了我以前从未见过的程度。这就是为什么我认为分享这些可以帮助我们避免使用过多 if 语句的简单技巧很重要...【详细内容】
2024-01-30  前端达人  今日头条  Tags:JS   点击:(56)  评论:(0)  加入收藏
18个JavaScript技巧:编写简洁高效的代码
本文翻译自 18 JavaScript Tips : You Should Know for Clean and Efficient Code,作者:Shefali, 略有删改。在这篇文章中,我将分享18个JavaScript技巧,以及一些你应该知道的示例...【详细内容】
2024-01-30  南城大前端  微信公众号  Tags:JavaScript   点击:(65)  评论:(0)  加入收藏
使用 JavaScript 清理我的 200GB iCloud,有了一个意外发现!
本文作者在综合成本因素之下,决定用 Java 脚本来清理一下自己的 iCloud,结果却有了一个意外发现,即在 iCloud 中上传同一个视频和删除此视频之后,iCloud 的空间并不一致,这到底是...【详细内容】
2024-01-11    CSDN  Tags:JavaScript   点击:(97)  评论:(0)  加入收藏
站内最新
站内热门
站内头条