多个Node.js版本之间切换

news2024/11/20 21:31:43

本篇文章会讲windows和Mac系统下实现多个node.js版本之间的切换。

1.windows下采用nvm(nvm-window)

2.Mac下采用nvm和n

注:window和mac下的nvm地址是不一样的

一、windows系统

什么是nvm?

nvm是一个简单的bash脚本,它是用来管理系统中多个已存的Node.js版本

配置步骤

1.先卸载掉本系统中原有的node版本(也可以不卸载,我觉得吧还是卸载吧,以免会有冲突。反正我是卸了);

卸载我就不细讲了,在控制面板的程序和功能中就可以卸载掉。

2.去github上下载nvm安装包

下载地址:https://github.com/coreybutler/nvm-windows/releases

下载说明

之后就是安装了,解压双击exe文件傻瓜安装。

需要注意的是安装路径最好是C:\nvm,默认的路径安装成功后,在切换node版本时会有问题。

还有就是在安装成功后,会自动配置系统变量。这里不用管,只是知道有这么一回事就行了,以免以后修改环境变量的时候不要误操作了就好。

截一下图吧:

变量

NVM_HOME:nvm的安装目录

NVM_SYMLINK:node的安装目录

环境变量:

对了下载完找到nvm的安装目录,打开setting.txt文件,添加上下面两个配置:

nvm node_mirror https://npm.taobao.org/mirrors/node/

nvm npm_mirror https://npm.taobao.org/mirrors/npm/

上截图吧

setting配置

这一步可做可不做,配置的目的是将npm镜像切换到淘宝的镜像,可以提高下载速度。(就是喜欢这种快感)

接下来验证一下是否安装成功

在cmd中输入:nvm 出现下图既成功

成功截图

3.安装node

安装node首先得知道有哪些node版本,不然肯定会报错的了(这就是废话)

可以在这看:https://github.com/coreybutler/nodedistro/blob/master/nodeversions.json

不推荐在这看,原因1.打开github网站较慢。2.这上面的版本并不是最新的

还可以直接使用命令查看: nvm list available

node版本列表

之后就使用nvm命令下载nodejs

(1)我以10.13.0版本为例

npm install 10.13.0

(2)使用nvm use 10.13.0命令,切换node版本为10.13.0

nvm use 10.13.0

注意:这点很重要,安装完后紧接着就用nuv use命令使用,不然你就是用不了这个node版本了。(这是个坑啊,MD,浪费了我一上午的时间,此处省略一万字,应了一句话饺子要吃烫烫的)

假如真的是切换不了这个版本了,用nvm uninstall 10.13.0卸载这个版本再重新安装即可。

(3)使用nvu list查看所有下载的node版本,以及当前是哪个版本(当前是10.13.0这个版本,我顺道下了9.3.0和12.13.1这两个版本)

nvu list

(4)运行一下node命令看一下是否成功

查看node版本

出现这个就可以了  至此nvm安装成功

常用的一些nvm命令

nvm install <version> [arch]:该可以是node.js版本或最新稳定版本latest。(可选[arch])指定安装32位或64位版本(默认为系统arch)。设置[arch]为all以安装32和64位版本。

nvm list [available]:列出已经安装的node.js版本。可选的available,显示可下载版本的部分列表。这个命令可以简写为nvm ls [available]。

nvm uninstall <version>: 卸载指定版本的nodejs。

nvm use [version] [arch]: 切换到使用指定的nodejs版本。可以指定32/64位[arch]。

还有一些其他的命令就不一一距举例了

二、Mac系统

mac系统安装nvm和n这两个其中的一种就行

先来说 n

下面是三种安装方式(选择其中一种就行)

(1)如果你的mac上已经有了node,就可以直接使用npm命令安装

npm install -g n

安装后,将版本n缓存在环境变量指定的目录的node子目录n/versions中N_PREFIX,默认为/usr/local; 而主动 node版本直接安装在N_PREFIX。

为了避免需要sudo的n和npm全球的安装,建议您或者使用安装到你的主目录N_PREFIX,或采取系统目录的所有权:

# make cache folder (if missing) and take ownership

sudo mkdir -p /usr/local/nsudo chown -R $(whoami) /usr/local/n

# take ownership of node install destination folders

sudo chown -R $(whoami) /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share

(2)如果没有node,也可以通过另一种方式安装

curl -L https://raw.githubusercontent.com/tj/n/master/bin/n -o n

bash n lts

# Now node and npm are available

(3)使用第三方安装

curl -L https://git.io/n-install | bash

因为我已经有了node,这里我是通过第一种方式安装的。

1.先来执行npm install -g n

安装n

2.查看一下安装是否成功 n --version

查看n的版本

3.直接运行n,会提示没有可以切换的node版本,虽然以前已经安装过node ,但是还是要安装一下才可以进行切换

查看安装的node版本,图中表示没有安装node

4.安装node版本,n 10.13.0

安装node版本

如果在安装的过程中遇到Error: sudo required

此时使用sudo n 10.13.0即可

使用sudo安装node

命令格式为:n node-version

如:n 10.13.0   安装10.13.0版本

      n latest   安装最新的官方发布

     n stable   安装稳定的官方发布

     n lts    安装最新的LTS官方版本

我的Mac系统,所有已经安装的node版本存放路径:/usr/local/n/versions/node

5.切换node版本

先执行n 

查看已经安装的node版本,选中的为当前node版本

键盘上下键选择版本,之后回车切换版本

这时候会出现如下报错,也是无权限,解决办法有三个:

无权限

(1)直接用 sudo n,之后再选择node版本,回车就好了。

 sudo n

(2)sudo su 切换至root用户,之后在用n查看版本,之后再选择node版本,回车就好了。

sudo su

(3)用sudo n 10.13.0 没错这就是安装命令,如果这个版本没有安装时,则安装这个版本,如果这个版本已经安装了,则切换的这个node版本。

sudo n

切换完看一下这个node版本node -v

node -

完美,安装完成。

奥对了  如果想卸载某个node版本直接 n rm 10.13.0 就可以了(没有权限就加上sudo)

最后有些同学存在切换并不好使的情况,我没有遇到,但是那我也是尝试这去看以一些帖子,推荐一个吧:https://blog.csdn.net/ruffaim/article/details/83578710

以后我要是遇到此类问题,我会及时来更新文章的

再来说说Mac下使用nvm吧

总体来说和window下使用nvm差不了太多

安装nvm还是建议先把原有node卸载,不要问我为什么,我也不知道,大几率会出问题

下面是卸载node命令 

npm ls -g --depth=0 # 查看已经安装在全局的模块,以便删除这些全局模块后再按照不同的 node 版本重新进行全局安装

sudo rm -rf /usr/local/lib/node_modules # 删除全局 node_modules 目录

sudo rm /usr/local/bin/node # 删除 node

cd  /usr/local/bin && ls -l | grep "../lib/node_modules/" | awk '{print $9}'| xargs rm # 删除全局 node 模块注册的软链

之后就是在安装nvm是有些不同,直接在命令行输入下面命令

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash

之后输入 nvm ,当看到有输出时,说明安装成功,如果说nvm没有找到command not found,说明安装失败

在 .bash_profile 文件中加入以下代码,配置环境变量。

export NVM_DIR="$HOME/.nvm"

[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

编辑完成后直接保存文件。

然后终端输入“source .bash_profile”,更新配置过的环境变量。

如果没有这个文件,可以创建一个。参考学习的文章:http://blog.sina.com.cn/s/blog_8444778b0102x68e.html

至此nvm也就安装好了,具体的使用方法直接参考window下的nvm操作就好了,具体详情请看window部分

常用的一些nvm 命令

nvm install stable //安装最新版 

nodenvm install [node版本号] //安装指定版本的

nodenvm use [node版本号] //切换到指定版本的node

nvm alias default [node版本号] //设置默认版本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/540974.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

真题详解(有限自动机)-软件设计(七十七)

确定有限自动机 和 不确定有限自动机 解析&#xff1a; M1的A当0的时候&#xff0c;会变成A&#xff0c;也可能变成B&#xff0c; 所以M1是不确定有限自动机。 M2的A1的时候只会使A&#xff0c;0的时候只会是B B的0只会是B&#xff0c;1的时候只会是C。 C0的时候只会是B&a…

中小型企业需要“数据防泄露”吗?

数据防泄露是指企业采取的各种管理、技术与监督措施&#xff0c;以防止敏感和关键数据在传输、存储与使用过程中被未经授权访问或窃取&#xff0c;从而导致机密性、完整性或可用性受到损害。 数据防泄露工作通常包括数据分类与风险评估、权限管理与访问控制、加密与安全技术、数…

基于Gabor-小波滤波深度图表面法线的特征提取算法【通过正常Gabor-小波的直方图进行2D或3D特征提取】研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Bean的生命周期揭秘:从诞生到消亡,一个对象的壮丽演绎!

大家好&#xff0c;我是你们的小米。今天我要给大家揭秘一下Java开发中重要的概念——Spring Bean的生命周期。作为Java开发者&#xff0c;无论是在面试还是实际工作中&#xff0c;了解Bean的生命周期都是必备的知识点。让我们一起来深入了解吧&#xff01; 什么是Spring Bean …

【zabbix】PostgreSQL表信息查询收集监控

昨天开发那边给了一个需求&#xff0c;每隔一段时间查询一下数据库某表中的数据是否在最近更新&#xff0c;让我这边做一个监控信息收集 一、agent linux侧配置 这边目前就直接在zabbix上实现&#xff0c;首先就是脚本&#xff0c;我用python2实现 脚本名&#xff1a;check_y…

软件测试学什么——如何才能按时上线?

目录 引言 一、提前介入测试&#xff0c;认真做好需求分析。 二、测试计划没必要花太多精力。 三、测试用例编写 四、测试执行的关键点 五、测试环境 【一套系统提升学习的好资料】 阅读书籍文档 总结 引言 上线&#xff0c;永远是软件测试工程师最关注的问题。 上线…

Linux文件系统学习笔记

笔记 修改文件属性与权限数字修改文件权限符号修改文件权限 目录与文件的意义文件的权限目录的权限 路径 修改文件属性与权限 chgrp:修改用户组 chown:修改拥有者 chmod:修改用户权限 其中修改权限:chmod可以用数字修改或者符号修改 数字修改文件权限 一共有三种身份:拥有者…

freeswitch的2833和inband对接方案

概述 freeswitch支持三种模式的DTMF传输方式&#xff0c;分别时inband、INFO、2833。 在传统的PSTN网络中&#xff0c;所有的DTMF码都是inband模式&#xff0c;所以VOIP网络和PSTN网络对接中&#xff0c;需要将DTMF码做格式转换&#xff0c;通常是2833和inband之间的转换。 …

《思考致富》制造借口是一个根深蒂固的习惯

目录 经典摘录 领导方式有两种 拖拉 决心&#xff1a;克服拖拉的坏习惯&#xff08;通往致富之路的第七步&#xff09; 毅力&#xff1a;催生信念的持久努力&#xff08;通往致富之路的第八步&#xff09; 智囊团的力量&#xff1a;致富驱动力&#xff08;通往致富之路的第…

【分享】你用免费的GPT4了嘛?

哈喽&#xff0c;大家好&#xff0c;我是木易巷~ 现在OpenAI的ChatGPT4需要升级为plus会员使用&#xff0c;对于国内的用户来说&#xff0c;不仅需要魔法&#xff0c;还需要有一张外网的信用卡来开通会员&#xff0c;真的麻烦。 最近木易巷发现了一个项目&#xff0c;是GitHu…

基于欧式距离的聚类算法的Kmeans作业

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 基于欧式距离的聚类算法&#xff0c;其认为两个目标的距离越近&#xff0c;相似度越大。 该实验产生的点为二维空间中的点。 环境配置 java环境&#xff0c;使用原生的Java UI组件JPanel和JFrame 算法原理 基于欧式距离的聚…

问卷调查类型全面解析

调查问卷是从人们那里收集反馈和意见的强大工具。通过提出结构化问题&#xff0c;研究人员、组织和企业可以获得大量有关如何改进产品或服务、解决问题或做出明智决策的信息。但在设计调查问卷之前&#xff0c;必须首先了解不同的类型以及何时使用它们。 1、结构化问卷 结构化…

秀场、卖场、生态场,长沙为何连展会也与众不同?

文 | 智能相对论 作者 | 易不二 第三届长沙国际工程机械展览会已经完美落下帷幕。 依托长沙作为“工程机械之都”的硬核产业实力&#xff0c;又经过了多年耕耘&#xff0c;长沙国际工程机械展已经达到了跻身全球一流展会的水平。 4天的展期里&#xff0c;全球1502家企业参展…

【产品经理】产品体验报告准备

假如你已经决定为一个app写一份产品体验报告了&#xff0c;那么&#xff0c;我想说的是&#xff0c;不要急着动笔&#xff01; 下面就进入正题&#xff0c;在写产品体验报告之前&#xff0c;我会先去做哪些准备工作&#xff1a; &#xff08;1&#xff09;下载、把玩并熟悉app…

15-03 软件安全

系统安全 系统安全威胁 病毒蠕虫特洛伊木马Rootkit后门僵尸网络零日攻击Webshell 操作系统防御 杀毒软件&#xff1a;兵来将挡&#xff0c;水来土掩升级补丁&#xff1a;防止零日攻击限制&#xff1a;用户、网络、端口、程序、安全基准、不可变基础架构 杀毒软件检测机制 …

【猿人学WEB题目专解】猿人学第18题

&#x1f308;据说&#xff0c;看我文章时 关注、点赞、收藏 的 帅哥美女们 心情都会不自觉的好起来。 前言&#xff1a; &#x1f9e1;作者简介&#xff1a;大家好我是 user_from_future &#xff0c;意思是 “ 来自未来的用户 ” &#xff0c;寓意着未来的自己一定很棒~ ✨个…

财报解读 | 护肤业务乘风破浪,逸仙电商手握增长“王牌”

五年新战略计划进入第二年&#xff0c;逸仙电商能否如愿“一步、两步、三步”向前走&#xff1f; 5月16日&#xff0c;逸仙电商发布了2023年第一季度财报。财报显示&#xff0c;逸仙电商Q1实现营收8.91亿元&#xff0c;超出了此前指引上限&#xff1b;实现净利润5070万元&…

从0构建神经网络(1)从感知机到神经网络

一、前言 深度学习中有许多框架&#xff0c;包括Tensorflow、PyTorch、Keras等&#xff0c;框架中实现了各种网络&#xff0c;并且可以自动求导&#xff0c;因此构建一个完整的网络只需要十几行代码。因为框架高度封装&#xff0c;因此我们无法知道底层的原理。为了更好地理解…

【PCIE体系结构十一】部分物理层发送接收逻辑细节

&#x1f449;个人主页&#xff1a;highman110 &#x1f449;作者简介&#xff1a;一名硬件工程师&#xff0c;持续学习&#xff0c;不断记录&#xff0c;保持思考&#xff0c;输出干货内容 参考书籍&#xff1a;《PCI.EXPRESS系统体系结构标准教材 Mindshare》 目录 物理层…

我麻了,那些年,为了进阿里背过的面试题......

前言 入职阿里相信是很多软件测试人的梦想&#xff0c;我一个阿里的朋友跟我聊天时说&#xff0c;他为了入职阿里背了好多面试题。我开始还不以为然&#xff0c;当他发给我看了之后&#xff0c;我麻了&#xff01; 不废话&#xff0c;分享给你们&#xff0c;希望对你们有帮助&…