mac 安装nvm以及切换node版本详细步骤

1、nvm介绍(node版本管理工具) 

nvm 可以让你通过命令行快速安装和使用不同版本的node

有时候项目太老,node版本太高,执行npm install命令会报错,可以借助nvm切换低版本的node

2、安装nvm

在终端执行安装命令

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

后边的这个v0.33.8是nvm的版本号

3.等命令跑完之后,退出终端 重新打开

成功:

然后执行nvm -v看看有没有反应 ,有就说明安装成功了

失败:

如果提示是:command not found: nvm,就是安装失败了。
失败原因很有可能是因为电脑里边缺少一个叫做 .bash_profile 的文件,这个文件是一个隐藏文件,目录在/Users/xxx/.bash_profile

如果你的电脑默认是不显示隐藏文件 可以通过快捷键 command+shift+.来显示出来
如果你的电脑里没有这个文件 那就新建一个 ,如果有了,那就双击打开 ,把下边的代码复制粘贴进去,然后保存。

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" 

保存完了之后 回到终端,再次执行安装命令:

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

记得安装完之后退出 重新开打终端

最后nvm的常用命令 :(反正我也记不住)
nvm install stable ## 安装最新稳定版 node
nvm install <version> ## 安装指定版本
nvm uninstall <version> ## 删除已安装的指定版本,语法与install类似
nvm use <version> ## 切换使用指定的版本node
nvm ls ## 列出所有安装的版本
nvm ls-remote ## 列出所有远程服务器的版本(官方node version list)
nvm current ## 显示当前的版本
nvm alias <name> <version> ## 给不同的版本号添加别名
nvm unalias <name> ## 删除已定义的别名
nvm reinstall-packages <version> ## 在当前版本 node 环境下,重新全局安装指定版本号的 npm 包
nvm  所有命令  自行logo

在mac和liunx系统里边 nvm use 切换的是当次版本 下次打开终端 还是之前的node版本
要想永久切换 使用:

nvm alias default [node版本号] ##设置默认版本
nvm use <version> ## 切换使用指定的版本node

4.有时候项目输入node -v 或者npm -v 报错

因为node版本和项目不匹配

nvm ls-remote  //查看可用的node版本

        v0.1.14.......此处省略v16.0.0.......此处省略v21.0.0v21.1.0v21.2.0v21.3.0v21.4.0

nvm install 16.0.0 //安装指定node版本

最后记录下自己用的node版本号(项目因为node版本问题而npm install安装失败请选择适合的node版本):

       v10.16.3

->    v12.22.12

       v16.19.0

 

vue -V

@vue/cli 5.0.8

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

后端项目操作数据库-中枢组件Service调用Mapper实现增删改查-实例

接上篇 使用MyBatis配置Mapper实现增删改查 1.Service的基本作用 Service在代码中的的作用是调用Mapper、被Controller调用。是后端项目中非常重要的组件。 用于设计业务流程、业务逻辑&#xff0c;以保障数据的完整性、有效性、安全性。 2. Service使用举例——“添加相册”…

基于Java SSM框架实现抗疫医疗用品销售系统项目【项目源码+论文说明】

基于java的SSM框架实现抗疫医疗用品销售系统演示 摘要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;抗疫医疗用品销售平台当然也不能排除在外。抗疫医疗用品销售平台是以实…

防御升级!SMC2助力企业高效应对邮箱安全挑战

根据Coremail邮件安全人工智能实验室&#xff08;以下简称AI实验室&#xff09;的监测数据显示&#xff0c;2023年Q3全国企业级用户遭受无差别的暴力破解攻击次数虽相比2022年同期有所下降&#xff0c;但仍高达 24.2 亿次&#xff0c;且暴力破解攻击次数有明显回升趋势。 面对正…

Java 基础 - Unsafe应用解析

1、前言 Unsafe是位于sun.misc包下的一个类&#xff0c;主要提供一些用于执行低级别、不安全操作的方法&#xff0c;如直接访问系统内存资源、自主管理内存资源等&#xff0c;这些方法在提升Java运行效率、增强Java语言底层资源操作能力方面起到了很大的作用。但由于Unsafe类使…

大数据----31.hbase安装启动

二.Hbase安装 先前安装&#xff1a; Zookeeper 正常部署 首先保证 Zookeeper 集群的正常部署&#xff0c;并启动之。 三台机器都执行&#xff1a;zkServer.sh startHadoop 正常部署 Hadoop 集群的正常部署并启动。 主节点上进行 &#xff1a;start-all.sh 1.HBase 的获取 一定…

多域名https证书购买选择

多域名https证书是一种特殊的SSL证书&#xff0c;它允许一个证书同时保护多个域名&#xff0c;并且不限制域名的类型&#xff0c;可以保护多个域名和子域名&#xff0c;确保网站传输信息时不被窃取、篡改。那么我们该怎么选择符合需求的多域名https证书呢&#xff1f;今天就随S…

OceanMind海睿思案例入选第二届中国数据治理年会“DCMM百项优秀案例”

近日&#xff0c;中国电子信息行业联合会在北京成功举办“第二届中国数据治理年会”。 本届大会以“数据强基、智领未来”为主题&#xff0c;汇聚我国数据治理领域的资深专家、学者、企业大咖同台论道&#xff0c;共话数据未来的发展与创新。 中新赛克海睿思作为DCMM3级乙方代…

2024年天津医科大学临床医学院专升本专业课报名确认须知

2024年天津医科大学临床医学院高职升本科专业课考试报考须知一、报名条件报考2024年天津医科大学临床医学院高职升本科专业课考试的考生应符合以下条件&#xff1a; 1、符合《2024年天津市高职升本科招生工作规定》中规定的报考资格。 2、我院高职升本科专业课考试需要按照对…

迅腾文化软文营销:助力新品牌迈进新消费时代

迅腾文化软文营销&#xff1a;助力新品牌迈进新消费时代 随着科技的飞速发展&#xff0c;我们迎来了一个全新的消费时代&#xff0c;其中充满着变革、挑战与机遇。在这个时代&#xff0c;消费者的需求日益多样化&#xff0c;对新品牌的要求也愈发苛刻。然而&#xff0c;迅腾文…

线程安全集合类

文章目录 1. ConcurrentHashMap2. LinkedBlockingQueue 阻塞队列3. ConcurrentLinkedQueue4. CopyOnWriteArrayList JDK1.7 hashmap采用数组加链表头插的方式&#xff0c;在扩容时会出现循环死链问题&#xff0c;A->B->C扩容后C->B->A AB BA出现循环死链。 1. Conc…

超越MJ:PixArt-α超低成本,高质量文生图创新模型

近年来&#xff0c;人工智能的发展使得文本到图像&#xff08;T2I&#xff09;技术日益成熟&#xff0c;但同时也伴随着高昂的训练成本。然而&#xff0c;华为诺亚方舟实验室等机构最近提出的PixArt-α模型&#xff0c;打破了这一局限。PixArt-α能够以极低的成本&#xff08;仅…

dp入门:从记忆化搜索到递推 灵神[基础算法精讲17]

198. 打家劫舍 链接 : 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 解决 : 1.记忆化搜索(自顶向下) ; class Solution { public:int rob(vector<int>& nums) {// 记忆化搜索int n nums.size();vector<int> memo(n,-1); //…