一篇文章了解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中添加上面的两行内容即可

clipboard.png

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

clipboard.png

至此,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都会运行。

汤姆C
tomczhang的专栏,我会在这个专栏中撰写我的思考,工作中遇到的问题和苦恼,每周一篇

职业提升三部曲:

4.5k 声望
792 粉丝
0 条评论
推荐阅读
项目经历准备篇——如何准备阿里巴巴P6/P7前端面试
在上次的校招文章之后,有很多同学问有没有社招相关的东西可以写一篇,现在它来了。比起校招,社招更加看重项目经历+项目经历反应的思考。本文针对的是想进入阿里的P6/P7同学,着重讲解了很多同学容易忽视的项目...

这是你的玩具车吗30阅读 3.6k评论 5

从零搭建 Node.js 企业级 Web 服务器(十五):总结与展望
总结截止到本章 “从零搭建 Node.js 企业级 Web 服务器” 主题共计 16 章内容就更新完毕了,回顾第零章曾写道:搭建一个 Node.js 企业级 Web 服务器并非难事,只是必须做好几个关键事项这几件必须做好的关键事项就...

乌柏木75阅读 7.1k评论 16

从零搭建 Node.js 企业级 Web 服务器(一):接口与分层
分层规范从本章起,正式进入企业级 Web 服务器核心内容。通常,一块完整的业务逻辑是由视图层、控制层、服务层、模型层共同定义与实现的,如下图:从上至下,抽象层次逐渐加深。从下至上,业务细节逐渐清晰。视图...

乌柏木45阅读 8.6k评论 6

从零搭建 Node.js 企业级 Web 服务器(二):校验
校验就是对输入条件的约束,避免无效的输入引起异常。Web 系统的用户输入主要为编辑与提交各类表单,一方面校验要做在编辑表单字段与提交的时候,另一方面接收表单的接口也要做足校验行为,通过前后端共同控制输...

乌柏木35阅读 6.7k评论 10

从零搭建 Node.js 企业级 Web 服务器(五):数据库访问
回顾 从零搭建 Node.js 企业级 Web 服务器(一):接口与分层,一块完整的业务逻辑是由视图层、控制层、服务层、模型层共同定义与实现的,控制层与服务层实现了业务处理过程,模型层定义了业务实体并以 对象-关系...

乌柏木34阅读 5.1k评论 9

2022大前端总结和2023就业分析
我在年前给掘金平台分享了《2022年热点技术盘点》的前端热点,算是系统性的梳理了一下我自己对前端一整年的总结。年后,在知乎上看到《前端的就业行情怎么样?》,下面都是各种唱衰前端的论调,什么裁员,外包化...

i5ting27阅读 2.3k评论 4

封面图
从零搭建 Node.js 企业级 Web 服务器(十三):断点调试与性能分析
Node.js 官方提供了断点调试机制,出于安全性考虑默认为关闭状态,可以通过 node 参数 --inspect 或 --inspect-brk 开启,配合 IDE 能够非常方便地调试代码,本章就上一章已完成的项目 licg9999/nodejs-server-ex...

乌柏木31阅读 4.2k评论 9

职业提升三部曲:

4.5k 声望
792 粉丝
宣传栏