mac安装nvm管理工具遇到的问题和解决方法

nvm 是一款可以管理多版本node的工具,因为是刚买没多久的电脑+之前用的都是windows,昨天折腾了一下午终于倒腾好了

第一步:

卸载电脑已有的node;访问nvm脚本网址,另存为到电脑上任何目录,我是放在桌面上的https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh

第二步:

打开电脑终端,在当前用户下执行该脚本,我刚开始是进入到root下面,导致安装成功后,普通用户下无法使用nvm,后面卸载掉重新安装了一遍

进入到存放上面的脚本目录下面

执行脚本

sh raw.githubusercontent.com_nvm-sh_nvm_v0.38.0_install.sh

第三步:

配置环境变量,复制该端代码然后回车

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"  # This loads nvm bash_completion

 第四步:

检查是否安装成功,若返回版本号0.38.0则表示安装成功

nvm -v

第五步:

安装国内镜像资源,这样使用nvm下载node会快

export NVM_NODEJS_ORG_MIRROR=http://npmmirror.com/mirrors/node
export NVM_IOJS_ORG_MIRROR=http://npmmirror.com/mirrors/iojs

第六步(解决问题):

关掉终端后,再次打开终端,运行nvm - v 会报错找不到,再次执行第三步后又可以,用该下面的方法解决;若无该问题请忽略,直接到第七步的安装node

打开终端,确保自己在安装nvm的用户下执行命令,输入命令,回车后查看是否有.bash_profile文件

ls a

若没有的话就新建一个,重新安装nvm

touch ~/.bash_profile  ##新建文件
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash ##安装nvm,该方法安装nvm有的时候网络不稳定会返回超时的错误,可以用第一步的脚本方式进行重新安装

查看是否有.zshrc文件,没有的话需要新建一个

touch .zshrc

打开.zshrc文件

open .zshrc

输入内容

source ~/.bash_profile

执行成功后,关掉该终端,重新打开再次nvm -v就可以正常返回,不会报错找不到的问题

第七步(解决问题):

我在安装的时候是直接执行的第八步,这一步是在node安装后,发现npm报错找不到,所以把这一步写在了安装node的前面,防止你们和我一样,安装后还要再卸载重新安装node

设置npm的镜像

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

第八步:

查看nvm可以安装的node 版本

nvm ls-remote

安装自己需要的版本

nvm install v14.16.1

nvm的其它命令

nvm ls   #查看已安装的node版本
nvm uninstall v14.16.1  #卸载指定node版本
nvm current   #查看当前node版本
nvm use v14.16.1  #切换指定版本
nvm alias 公司项目 v14.16.1 #指定版本的别名
nvm unalias 公司项目  #删除别名

查看node和npm是否安装成功

node -v
npm -v

第九步(解决问题):

关掉终端,重新打开终端再次执行node -v 会报错找不到,执行nvm current发现返回的是none,因为没有指定默认版本,执行下面的命令

nvm alias default v14.16.1

第十步:

关掉终端,再次确认所有的东西是否都能正常使用

nvm ls
node -v
npm -v

总结:nvm的安装过程其实并不复杂,折腾了一下午还是对于mac的终端命令不熟悉,还有对问题的排查步敏感,在root权限下安装nvm时,我是使用的curl 在线安装的,因为当时的网络很差,导致一直链接不到,报错,我以为是系统的原因,上网查了好多资料,在nvm的github看到有人报同意的错误,底下有条评论说就是网络的原因,我就赶紧切换到我的热点,很快就下载完成了。但是最后还是安装错了目录,哈哈哈,不管过程咋样,最后结果是完成了,写下这篇文章,希望看到这篇文章的人可以少走点坑,节省些时间。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【音视频、chatGpt】h5页面最小化后,再激活后视频停住问题的解决

目录 现象 观察 解决 现象 页面有时候要切换,要最小化;短时间或者几个小时内切换回来,视频可以正常续上;而放置较长时间,几个小时或者一晚上,切换回来后,视频可能卡死 观察 切换页面&#x…

leetcode118. 119.杨辉三角

118 题目: 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 思路: 可以发现从第三行开始,从第二个元素到倒数第二个元素,每个元素都…

TypeScript 关于对【泛型】的定义使用解读

目录 概念导读泛型函数多个泛型参数泛型约束泛型别名泛型接口泛型类总结: 概念导读 泛型(Generics)是指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。使用泛型 可以复用类型…

C#小轮子:Visual Studio自动编译Sass文件

文章目录 前言插件安装插件使用compilerconfig.jsonsass输入和css输出(自动生成)默认配置(我不懂就不去动他了) 前言 我们知道css文件用起来太麻烦,如果样式一多,嵌套起来用css样式就眼花缭乱。Sass使用层…

ElasticSearch:项目实战(1)

es环境搭建参考:ElasticSearch:环境搭建步骤_Success___的博客-CSDN博客 需求: 用户输入关键可搜索文章列表 关键词高亮显示 文章列表展示与home展示一样,当用户点击某一篇文章,可查看文章详情 思路: …

CSS-grid布局

网格布局也叫grid布局,平常写样式的时候基本上都是用的flex布局。 像以下布局,用flex布局就可能会有有点麻烦,这时候用grid布局就方便的多了。 或者是照片墙 grid布局就是将容器划分为行和列,产生单元格,然后在指定的…

ArcGIS Pro技术应用(暨基础入门、制图、空间分析、影像分析、三维建模、空间统计分析与建模、python融合)

GIS是利用电子计算机及其外部设备,采集、存储、分析和描述整个或部分地球表面与空间信息系统。简单地讲,它是在一定的地域内,将地理空间信息和 一些与该地域地理信息相关的属性信息结合起来,达到对地理和属性信息的综合管理。GIS的…

机器学习笔记之优化算法(十一)凸函数铺垫:梯度与方向导数

机器学习笔记之优化算法——凸函数铺垫:梯度与方向导数 引言回顾:偏导数方向余弦方向导数方向导数的几何意义方向导数的定义 方向导数与偏导数之间的关联关系证明过程 梯度 ( Gradient ) (\text{Gradient}) (Gradient) 引言 本节作为介绍凸函数的铺垫&a…

【华秋推荐】新能源汽车中的T-BOX系统,你了解多少?

近几年,新能源汽车产业进入了加速发展的阶段。我国的新能源汽车产业,经过多年的持续努力,技术水平显著提升、产业体系日趋完善、企业竞争力大幅增强,呈现市场规模、发展质量“双提升”的良好局面。同时,通过国家多年来…

IDEA每次启动indexing解决办法

每次启动indexing很浪费时间。 解决办法 setting中搜索index 设置如下: 这样设置以后,启动速度明显快多了。 参考 https://blog.csdn.net/qq_45162113/article/details/121128721

Leetcode24 两两交换链表相邻的节点

迭代解法: class Solution {public ListNode swapPairs(ListNode head) {ListNode dummyHead new ListNode(0);dummyHead.next head;ListNode temp dummyHead;while (temp.next ! null && temp.next.next ! null) {ListNode node1 temp.next;ListNode n…

【单片机】51单片机,晨启科技,板子引脚对应关系

一般引脚: sbit beepP2^4; //将单片机的P2.4端口定义为beep.本口用于屏蔽上电后蜂鸣器响 sbit ledP1^0; //将单片机的P1.0端口定义为led,用于点亮LED-D1 sbit DIG1P0^0; //数码管位选1 sbit DIG2P0^1; //数码管位选2P10xFF;//初始化P1引脚全部置高&a…

树莓派安装Ubuntu系统(无屏幕)

树莓派安装ubuntu系统 前言 软件需要: 1.方案一 win32diskimager-1.0.0-install.exe SDFormatterha Ubuntu镜像(可以官网下载也可以清华源) 方案二: 树莓派镜像烧录器 树莓派镜像烧录器直达下载 硬件需要: 64GB内存卡(推荐Sanddisk Ultra&am…

Java并发编程第4讲——Java中的锁(知识扫盲)

目录 一、锁的相关概念 1.1 什么是锁 1.2 为什么需要锁 1.3 Java中锁的分类 二、synchronized关键字 2.1 三个特点 2.2 三种表现形式(🙋‍♂️) 2.3 sychronized是怎么实现的(🙋‍♂️) 2.4 JDK1.…

用MariaDB创建数据库,SQL练习,MarialDB安装和使用

前言:MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB来代替MySQ…

有血有肉的PPT

1、PPT是Powerpoint缩写 2、引申的含义是Powerpoint Power(力量/能量) Point(观点/要点) 3、用PPT做的文档是讲演稿,讲演的内容要有力度,之所以要去演讲是为了能够影响受众 4、其次演讲稿上的内容要列出要点、表明观点,所以一般P…

Jmeter入门之digest函数 jmeter字符串连接与登录串加密应用

登录请求中加密串是由多个子串连接,再加密之后传输。 参数连接:${var1}${var2}${var3} 加密函数:__digest (函数助手里如果没有该函数,请下载最新版本的jmeter5.0) 函数助手:Options > …

2.CUDA 编程手册中文版---编程模型

2.编程模型 更多精彩内容,请扫描下方二维码或者访问https://developer.nvidia.com/zh-cn/developer-program 来加入NVIDIA开发者计划 本章通过概述CUDA编程模型是如何在c中公开的,来介绍CUDA的主要概念。 编程接口中给出了对 CUDA C 的广泛描述。 本章…

在Ubuntu中使用Docker启动MySQL8的天坑

写在前面 简介: lower_case_table_names 是mysql设置大小写是否敏感的一个参数。 1.参数说明: lower_case_table_names0 表名存储为给定的大小和比较是区分大小写的 lower_case_table_names 1 表名存储在磁盘是小写的,但是比较的时候是不区…

微服务Eureka注册中心

目录 一、Eureka的结构和作用 二、搭建eureka-server 三、服务注册 四、服务发现 假如我们的服务提供者user-service部署了多个实例,如图: 存在的问题: order-service在发起远程调用的时候,该如何得知user-service实例的ip地址…