公司配备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. 【linux命令】setterm控制终端属性命令(中英文)

    [linux命令]setterm控制终端属性命令(中英文) 2018年03月23日 17:13:44 阅读数:489 标签: linux 更多 个人分类: linux 摘自:https://blog. ...

  2. Cannot resolve the collation conflict between "Chinese_PRC_CI_AS" and "SQL_L及由于排序规则不同导致查询结果为空的问题

    报错:Cannot resolve the collation conflict between "Chinese_PRC_CI_AS" and "SQL_L 出错原因: ...

  3. 使用 Vue.component

    引入 vue.js. HTML <div id="app"></div> CSS .greeting { padding: 3rem 1.5rem; bac ...

  4. 20169219 Nmap扫描实验

    提交用 namp 对Windows 靶机,SEED靶机,Linux靶机的扫描的命令和结果进行截图 一.首先分析Linux靶机Metasploitable 扫描Metasploitableb靶机 扫描M ...

  5. APUE(1)----UNIX基础知识

    一.UNIX体系结构 所有操作系统都为他们所运行的程序提供服务,典型的服务包括:执行新程序.打开文件.读文件.分配存储区等.严格意义上来说,操作系统可以定义为一种软件,它控制计算机硬件资源,提供程序运 ...

  6. Mono for Android for Visual Studio 2010安装及试用

    安装 Mono for Android for Visual Studio 2010 需要下面4个步骤: 1.安装 JDK 下载并安装 Java 1.6 (Java 6) JDK. 2.安装 Andr ...

  7. 安装Xamarin.Android几个经典介面

    昨晚Microsoft MVP的身份来申请Xamarin.Android,想不到今早就有邮件回复.花上些少时间订阅与注册: 望有时间能学习到一些新技术. 下面是Insus.NET下载并安装,留下几个经 ...

  8. C# 抽象(4)

    抽象类和普通类有区别嘛?在继承的时候,还是只能继承一次父类嘛? 答案: 抽象类除了在抽象方法和属性上面不能实现具体的代码之外和普通类没有区别.依旧符合类的基本特征.所以在继承的时候抽象类也是属于基类, ...

  9. 使用 GPU 加速计算

    U-n-i-t-y 提供了 [Compute Shader][link1] 来使得我们可以将大量的复杂重复的计算交给并行的 GPU 来处理,正是由于并行原因,这样就可以大大加快计算的速度,相比在 CP ...

  10. 宏定义(无参宏定义和带参宏定义),C语言宏定义详解

    1.宏定义说明 宏定义是比较常用的预处理指令,即使用"标识符"来表示"替换列表"中的内容.标识符称为宏名,在预处理过程中,预处理器会把源程序中所有宏名,替换成宏 ...