mac M1 安装nvm步骤

MacBook M1 安装node版本管理nvm步骤记录,当笔记查询

安装nvm(推荐的node版本管理器)

使用curl进行安装nvm

不要使用homebrew!不要使用homebrew!不要使用homebrew!官网也强调了不要使用!

  • 虽然homebrew安装过程比较顺利,看似没有问题,但是有很多未知的坑,比如node-sass等。npm安装项目依赖的时候,耗费n个小时一直安装失败。
  • 安装各种node版本/npm版本/yarn/各种国内镜像均不能解决。
第一步
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
第二步
vim .bash_profile
第三步,将下面内容复制到进去,然后保存
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
// nvm国内镜像
export NVM_NODEJS_ORG_MIRROR=http://npm.taobao.org/mirrors/node
export NVM_IOJS_ORG_MIRROR=http://npm.taobao.org/mirrors/iojs
可能会出现的情况
vim ~/.bash_profile进入 按 i 进入编辑模式,编辑完成之后按 :wq退出编辑;

如果出现E45: ‘readonly’ option is set (add ! to override);

出现这种错误时会退出不了vim,那么出现这种错误的原因有:
1、该错误为当前用户没有权限对文件修改。
2、该文件没有正确保存退出,正在打开状态,关闭后再保存。
3、若该文件所有都关闭,提示有的人没有关闭,则删除该文件的临时文件则可正常打开、修改、保存。

出现这种错误后解决的方法有两种:
一、第一种方法:如果有root权限,可以输入 :wq!强行保存退出。
二、第二种方法:
(1)按ESC
(2)输入 :set noreadonly
(3)输入 :wq 就可保存退出

第四步,重新激活.bash_profile
source ~/.bash_profile
第五步
source ~/.zshrc

可能会出现 source: no such file or directory: /Users/******/.zshrc
原因:Mac 每次都要执行source ~/.bash_profile 配置的环境变量才生效
自己在 ~/.bash_profile 中配置环境变量, 可是每次重启终端后配置的不生效.需要重新执行 source ~/.bash_profile

发现zsh加载的是 ~/.zshrc文件,而 ‘.zshrc’ 文件中并没有定义任务环境变量。
解决办法
1.vim ~/.zshrc
2.在~/.zshrc文件最后,增加一行:
source ~/.bash_profile

第六步,测试nvm命令是否安装成功

执行nvm命令
打印出来Node Version Manager (v0.37.2),则证明安装成功

使用nvm安装node版本

M1执行nvm install安装node报错404

➜  sales_app git:(carDetail) nvm install 12.22.12
Downloading and installing node v12.22.12...
Downloading https://nodejs.org/dist/v12.22.12/node-v12.22.12-darwin-arm64.tar.xz...
-#O=-#      #        #                                                                                                                                                                                                        
curl: (22) The requested URL returned error: 404 
Binary download from https://nodejs.org/dist/v12.22.12/node-v12.22.12-darwin-arm64.tar.xz failed, trying source.
grep: /Users/gch/.nvm/.cache/bin/node-v12.22.12-darwin-arm64/node-v12.22.12-darwin-arm64.tar.xz: No such file or directory
Provided file to checksum does not exist.
Binary download failed, trying source.
Clang v3.5+ detected! CC or CXX not specified, will use Clang as C/C++ compiler!
Local cache found: $NVM_DIR/.cache/src/node-v12.22.12/node-v12.22.12.tar.xz
Checksums match! Using existing downloaded archive $NVM_DIR/.cache/src/node-v12.22.12/node-v12.22.12.tar.xz
$>./configure --prefix=/Users/gch/.nvm/versions/node/v12.22.12 <
INFO: configure completed successfully
/Library/Developer/CommandLineTools/usr/bin/make -C out BUILDTYPE=Release V=0
  touch /Users/gch/.nvm/.cache/src/node-v12.22.12/files/out/Release/obj.target/node_dtrace_header.stamp
  touch /Users/gch/.nvm/.cache/src/node-v12.22.12/files/out/Release/obj.target/specialize_node_d.stamp
  touch /Users/gch/.nvm/.cache/src/node-v12.22.12/files/out/Release/obj.target/tools/v8_gypfiles/v8_headers.stamp
  c++ -o /Users/gch/.nvm/.cache/src/node-v12.22.12/files/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/nultrans.o ../deps/icu-small/source/i18n/nultrans.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DOPENSSL_NO_ASM' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-D_CRT_SECURE_NO_DEPRECATE=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common  -O3 -gdwarf-2 -mmacosx-version-min=10.10 -arch arm64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++1y -stdlib=libc++ -fno-exceptions -fno-strict-aliasing -MMD -MF /Users/gch/.nvm/.cache/src/node-v12.22.12/files/out/Release/.deps//Users/gch/.nvm/.cache/src/node-v12.22.12/files/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/nultrans.o.d.raw   -c
  c++ -o /Users/gch/.nvm/.cache/src/node-v12.22.12/files/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/uspoof_conf.o ../deps/icu-small/source/i18n/uspoof_conf.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DOPENSSL_NO_ASM' '-DU_I18N_IMPLEMENTATION=1' '-DU_ATTRIBUTE_DEPRECATED=' '-D_CRT_SECURE_NO_DEPRECATE=' '-DU_STATIC_IMPLEMENTATION=1' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common  -O3 -gdwarf-2 -mmacosx-version-min=10.10 -arch arm64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++1y -stdlib=libc++ -fno-exceptions -fno-strict-aliasing -MMD -MF /Users/gch/.nvm/.cache/src/node-v12.22.12/files/out/Release/.deps//Users/gch/.nvm/.cache/src/node-v12.22.12/files/out/Release/obj.target/icui18n/deps/icu-small/source/i18n/uspoof_conf.o.d.raw   -c

经过分析发现命令安装node版本时,M1电脑自动拼接路径如下:

https://nodejs.org/dist/v12.2…
arm64是M1特有的软件命令方式 目前node官网不提供此类的压缩包 压缩包官网
解决办法:
1.执行install命令前先执行M1兼容命令:

arch -x86_64 zsh

2.然后再执行install会自动修复下载版本的链接:
https://nodejs.org/dist/v12.2…

➜  arch -x86_64 zsh
➜ nvm install 12.22.0         
Downloading and installing node v12.22.0...
Downloading https://nodejs.org/dist/v12.22.0/node-v12.22.0-darwin-x64.tar.xz...
###################################################################################################### 100.0%
Computing checksum with shasum -a 256
Checksums matched!
Now using node v12.22.0 (npm v6.14.11)
常用的nvm命令
nvm install stable ## 安装最新稳定版 node

nvm install <version> ## 安装指定版本,可模糊安装,如:安装v4.4.0,既可nvm install v4.4.0,又可nvm install 4.4

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 包


  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值