一篇文章了解Mac上Node环境配置
Mac上配置个Node还是很简单的,但是有些小坑和知识点,本文除了描述如何进行环境配置之外,还描述了两个坑:1)brew装nvm,重启终端后nvm失效 2)终端重启后,通过nvm安装的node、npm失效 以及两个知识点:1)nvm与n的区别 2)bash_profile,bashrc与zshrc的区别
1. 配置安装流程
1.1 安装HomeBrew
官网:https://brew.sh/index_zh-cn.html
HomeBrew是MacOS上的包管理器,用于安装系统上没有预装的东西。我们用它来安装nvm。
安装:
// 打开zsh,输入 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
PS: HomeBrew也可以用来装node,但是用nvm可以更方便的控制node的版本切换。
1.2 安装nvm
官网:https://github.com/creationix...
nvm用来进行node版本控制,我们使用HomeBrew来安装nvm。
brew install nvm
坑1: brew装nvm,重启终端后nvm失效
但是用brew安装nvm有个bug,安装时缺少了nvm.sh,这会导致每次重启终端,nvm命令就失效了,所以我们要每次运行下面的命令:
// 复制下面的代码到终端并运行 export NVM_DIR=~/.nvm source $(brew --prefix nvm)/nvm.sh
好了,现在nvm命令已经能被识别了,但是每次重启终端都要运行无疑是很复杂的,所以要在~/.zshrc
中配置一下,保证每次重启时,系统都能帮我们做一步。
在~/.zshrc
中添加上面的两行内容即可
1.3 安装node
下面使用nvm来安装node,命令依次如下:
nvm ls-remote // 查看当前提供node版本号 nvm install v8.11.3 // 我选择了stable版本 node -v // 安装完成后就可以查看node和npm的版本了 npm -v
坑2:终端重启后,通过nvm安装的node、npm失效
但是重启终端之后,node和npm也失效了,当时我就不想弄了,瞎搞啊这是。这是因为nvm没有默认绑定node的版本号,所以要手动绑定一下。
如果你还没有重启,node和npm命令还有效,那么直接运行下面的命令,如果已经无效,先重新用nvm安装node
nvm use v8.11.3 // 设置默认版本号 nvm ls // 查看默认是否已经设置成功,成功图如下 // 若是没有成功,再绑定一下默认版本号 nvm alias default v8.11.3
至此,node部署完成。
2. 相关知识点
通过第一部分,我们已经成功在MacOS上部署了node环境,下面是部署过程中可能涉及的一些小知识点。
2.1 nvm和n的区别
n: 全局安装的npm package。使用npm install -g n
安装,与node循环依赖。
nvm: 独立的软件包,不依赖node。
nvm有几点比n强:
- 对于全局模块,n对于全局模块没有办法控制,但是nvm中,node的不同版本的全局模块是存放在各自版本沙箱的。不同版本间不会有冲突
- 从理解角度,nvm不与node依赖,所以更好理解。
- 不需要先装node
当然,n能支持windows,使用也并不比nvm复杂,选择哪个都可以。
2.2 bash_profile,bashrc与zshrc的区别
看教程的时候,动不动就要在上面的三个文件中读写。那么上面三个文件是干什么,以及有什么区别呢?
这三个文件都是来设置用户工作环境的文件。它们都是终端启动时默认运行的文件。只不过他们稍有区别。
Login Shell: 输入密码进入终端的shell环境叫做Login Shell,如ssh远程登陆[1]
no-Login Shell: 普通双击打开终端称为no-Login Shell,但是在Mac中,系统都会默认给Login Shell。
- bash_profile:专门用于Login Shell里的
- bashrc;专门用于no-Login Shell里的
- zshrc:装了oh-my-zsh之后,启动时会运行zshrc而不是上面两个文件。另外它和Login Shell与no-Login Shell都没关系,不管什么shell都会运行。
相关推荐
wyzxzws 2020-06-11
sunnnyduan 2020-05-31
boneix 2020-10-21
seanzed 2020-10-15
ifconfig 2020-10-14
学留痕 2020-09-20
往后余生 2020-09-17
kka 2020-09-14
redis 2020-09-07
lzccheng 2020-09-06
soyo 2020-08-31
stonerkuang 2020-08-18
LxyPython 2020-08-17
raksmart0 2020-08-17
Lzs 2020-08-14
MrHaoNan 2020-07-31
80530895 2020-07-05
lengyu0 2020-06-28