公司配备Mac笔记本,以前没用过mac开发项目,一开始依然是从node官网下载安装包,后来领导说最好是用brew安装软件,这样比较方便,安装和卸载,只要在命令行输入相应的 install 和 uninstall 就行。

以前没有接触过brew,第一次知道这种东西,故记录如下:

1. 安装HomeBrew

HomeBrew是MacOS上的包管理器,用于安装系统上没有预装的东西。

官网:https://brew.sh/index_zh-cn.html

打开终端,输入以下命令:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew安装时间比较长,慢慢等待。

待brew安装完毕之后,输入以下命令查看brew是否安装成功:

brew -v

若安装成功,如下图:

2、Mac下安装nvm

用 brew 安装 node,在终端输入以下命令:

brew install node 

个人网速比较慢,安装时间比较长。下载了一夜,Mac本锁屏为黑屏的时候就不下载了,第二天一早起来,看到就没什么进展,继续等待,等到 terminali 到初始状态,试着 查看node版本,输入 node -v 发现没有安装上。

继续上网搜,参考了以下网址的文章《一篇文章了解Mac上node环境配置》:

https://segmentfault.com/a/1190000015416829

和 《mac下homebrew下载安装和node下载安装环境》https://blog.csdn.net/qq_38313184/article/details/80320629

看过之后,继续装 nvm (虽然暂时没用过这个,也不了解,后续待了解)。

打开https://github.com/creationix/nvm。在下面的简介中找到install这几个字,然后继续往下找,直到找到

复制这些字,到Mac的terminal中,就会安装nvm,安装完成后,还暂时不能用,需要复制它提示的两行代码(就是下图拿箭头标出来的两行代码)来配置环境变量:

若没有配置环境变量,输入nvm会显示nvm:command not found,配置环境变量后,输入nvm会显示Node Version Manager,表示安装成功.

3、安装node

nvm 是 Mac 下的 node 管理工具,有点类似管理 Ruby 的 rvm

nvm安装好之后,一定要把命令行窗口关闭,再打开,或者直接打开一个新的命令行窗口,进行后续操作。

nvm ls-remote

nvm ls-remote 会列出所有可用的 Nodejs 版本,如果输出中看到很多很多个版本号,就表示 nvm 安装好了。最后一个版本号就是当前最新的 Nodejs 版本,我这里是 v11.0.0 。

下面使用nvm来安装node,命令依次如下:

nvm ls-remote // 查看当前提供node版本号
nvm install v8.11.3 // 我选择了stable版本
node -v // 安装完成后就可以查看node和npm的版本了
npm -v

nvm和n的区别

n: 全局安装的npm package。使用npm install -g n安装,与node循环依赖。
nvm: 独立的软件包,不依赖node。

nvm有几点比n强:

  • 对于全局模块,n对于全局模块没有办法控制,但是nvm中,node的不同版本的全局模块是存放在各自版本沙箱的。不同版本间不会有冲突
  • 从理解角度,nvm不与node依赖,所以更好理解。
  • 不需要先装node

当然,n能支持windows,使用也并不比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的解决办法二:

不推荐用brew安装nvm
这里说curl安装

打开终端键入:

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

执行curl后回终端回输出下面这段代码,我们拷贝下来

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

配置环境变量(无 .bash_profile)

添加 .bash_profile在终端键入

touch .bash_profile

打开 .bash_profile在终端键入

open -e .bash_profile

在 .basn_profile中输入刚刚拷贝的两行代码
运行配置文件,在终端键入

source ~/.bash_profile

ok查看配置路径,在终端键入

$PATH

坑2:终端重启后,通过nvm安装的node 和 npm都失效了。

按照坑1中的方法再来一次。

Mac上Node环境配置的更多相关文章

  1. Mac上利用VScode配置c/c++开发环境

    Mac上利用VScode配置c/c++开发环境 哭辽,Typora里面最好不要插入表情,不然保存会闪退 首先你要有一个vscode 在扩展里面下载c/c++ 第一步 ⬆+com+p 打开命令模式:选择 ...

  2. Mac上通过docker配置PHP开发环境

    这篇文章介绍的内容是关于Mac上通过docker配置PHP开发环境,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 更多PHP相关知识请关注我的专栏PHP​zhuanlan.zhihu. ...

  3. Oracle 12cR1 RAC 在VMware Workstation上安装(上)—OS环境配置

    Oracle 12cR1 RAC 在VMware Workstation上安装(上)-OS环境配置 1.1  整体规划部分 1.1.1  所需软件介绍 Oracle RAC不支持异构平台.在同一个集群 ...

  4. Mac上Hive安装配置

    Mac上Hive安装配置 1.安装 下载hive,地址:http://mirror.bit.edu.cn/apache/hive/ 之前我配置了集群,tjt01.tjt02.tjt03,这里hive安 ...

  5. CentOS6.5上golang环境配置

    CentOS6.5上golang环境配置 一.下载和解压go环境包 >>cd /usr/local/src/ >>wget -c http://golangtc.com/sta ...

  6. Eclipse上Maven环境配置使用 (全)

    Eclipse上Maven环境配置使用 (全) 1. 安装配置Maven: 1.1 从Apache网站 http://maven.apache.org/ 下载并且解压缩安装Apache Maven. ...

  7. mac上使用zsh配置环境变量

    Mac配置环境变量的地方 一./etc/profile (建议不修改这个文件 ) 全局(公有)配置,不管是哪个用户,登录时都会读取该文件. 二./etc/bashrc (一般在这个文件中添加系统级环境 ...

  8. node环境配置安装(nvm)

    在我们前端开发工程中,很多繁琐机械的操作都是会慢慢的被抽离出来的,当我们为dom操作和浏览器兼容性感到厌烦时,jQuery出现了,当我们不想再去理会dom的添加删除等的时候,angularJS来解救我 ...

  9. Mac上Hive环境搭建

    本文介绍在Mac上搭建Hive环境. 建议首先配置好Hadoop,搭建与配置可以参考我之前的博文Mac Hadoop的安装与配置. 当然你也可以选择使用Docker搭建环境,本文不作介绍. 安装 对于 ...

随机推荐

  1. django: rest-framework的 分页和过滤

    django: rest-framework的 分页和过滤 2018年06月28日 10:09:01 weixin_42359464 阅读数:136 标签: flaskrestframeworkdja ...

  2. sed陷阱

    sed陷阱:   sed -i 后不要紧跟字母, 否则会产生一个新的备份文件(在原文件后多出来一个字母) // 正确写法 /usr/bin/sed -i "/PREFIX=/d" ...

  3. [GO]将随机生成的四位数字拆分后放到一个切片里

    package main import ( "math/rand" "time" "fmt" ) func InitData(p *int) ...

  4. 无限级分类及生成json数据

    第一步,先去数据库查询类别数据,然后交给生成json数据的函数处理,代码如下: /*生成类别JSON数据*/ public function wirteJson(){ $dataInfo = \thi ...

  5. 应用Bundle捆绑压缩技术

    从MVC4开始,我们就发现,项目中对Global.asax进行了优化,将原来在MVC3中使用的代码移到了[App_Start]文件夹下,而Global.asax只负责初始化.其中的BundleConf ...

  6. window phone 8资源管理器打开文件

    一.打开安装包里面文件: StorageFolder sf = Package.Current.InstalledLocation;//ApplicationData.Current.LocalFol ...

  7. 百度云BDCloudVideoView播放器的初体验

    今天试用了一下百度云BDCloudVideoView,记录下遇到的坑. 前面一切还好,按照他的要求各种导入,然后开始码代码,起实就是抄例子.然后各种坑开始了 下面这个你看名称能知道它是个啥吗? mVi ...

  8. javascript 视频播放指定的时间段

    javascript 视频播放指定的时间段 一.html5 vedio: //指定开始时间 player.currentTime=startPoint; player.play(); //使用事件来控 ...

  9. [转]解读Unity中的CG编写Shader系列1——初识CG

    CG=C for Graphics  用于计算机图形编程的C语言超集 前提知识点: 1.CG代码必须用 CGPROGRAM ... ENDCG括起来 2.顶点着色器与片段着色器的主函数名称可随意,但需 ...

  10. MongoDB 深入学习 -- ReplSet,Sharding,Security,Aggregation,Command

    萌新最近在对付MongoDB,因此每天都在翻官方文档,这里随便做点笔记 ReplSet 与 Sharding ReplSet 是副本集,也就是主从集合.可以用来做负载均衡,数据热备份.副本集的配置相对 ...