mac中利用NVM管理不同node版本的方法详解


Posted in Javascript onNovember 08, 2017

前言

大家在开始本文的正文之前,建议大家先看看这篇文章:https://3water.com/article/73424.htm,这篇文章给大家详细介绍了关于node.js 下使用 nvm 或者 n 来进行版本控制及nvm 安装node.js 版本后,重启终端 node , npm 环境变量失效的相关内容,好了,下面开始本文的正文:

Mac 下通过 brew install nvm 所安装的 nvm ,由于安装路径不同,无法正确启用。建议使用 brew uninstall nvm 卸载掉之后,通过本文的方案重新安装一次。

卸载已安装到全局的 node/npm

如果之前是在官网下载的 node 安装包,运行后会自动安装在全局目录,其中

node 命令在 /usr/local/bin/node ,npm 命令在全局 node_modules 目录中,具体路径为 /usr/local/lib/node_modules/npm

安装 nvm 之后最好先删除下已安装的 node 和全局 node 模块:

npm ls -g --depth=0 #查看已经安装在全局的模块,以便删除这些全局模块后再按照不同的 node 版本重新进行全局安装

sudo rm -rf /usr/local/lib/node_modules #删除全局 node_modules 目录
sudo rm /usr/local/bin/node #删除 node
cd /usr/local/bin && ls -l | grep "../lib/node_modules/" | awk '{print $9}'| xargs rm #删除全局 node 模块注册的软链

通过nvm来管理

场景:同组的同事使用node版本是5.7.0,而本机安装了node 7.2.0,如何兼容?

使用nvm管理。

  • 使用Homebrew安?nvm
  • 使用nvm安?Node.js
  • 使用nvm?o痛切?QNode.js版本

安装nvm

brew install nvm

使nvm生效

source $(brew --prefix nvm)/nvm.sh

或者:

echo "source $(brew --prefix nvm)/nvm.sh" >> .bash_profile
. ~/.bash_profile

使用nvm安?Node.js

nvm ls-remote

查看可用版本:

v0.10.20
v0.10.21

安装:

nvm install <version>

比如:

nvm install v5.7.0

还有

nvm install v7.2.0

使用nvm?o痛切?QNode.js版本

nvm??迅??版本的node安?在/usr/local/opt/nvm底下。可以看看?目?底下放了哪些?|西:

$ ls /usr/local/opt/nvm
INSTALL_RECEIPT.json LICENSE.md alias bin nvm.sh v5.7.0 v7.2.0

我??可以??透?nvm安?????版本,事??上???vm目?下另外建立了v5.7.0以及v7.2.0???目??矸?e存放node的binary?n。又nvm??谀愕?PATH最前面安插指定版本的目?,透????方式你在使用node指令?r就??弥付ǖ陌姹?磉\作了。

?????PATH的值看看:

$ echo $PATH
/usr/local/opt/nvm/v5.7.0/bin: ...

查看当前可用版本

nvm ls

切换版本:

nvm use <version>

比如

nvm use --delete-prefix v5.7.0

也可以偷?幸稽c,不用打完整的版?:

$ nvm use --delete-prefix 5.7
Now using node v5.7.0

切?Q成?e的版本:

$ nvm use --delete-prefix 7
Now using node v7.2.0

不?????砹耍?绻?懔硗忾_一??shell?窗,?K?入nvm,??l?current version是空的:

$ nvm ls

 v0.10.24
 v0.11.10
current:

?是因?槔??vm use指令只??诋?前的shell生效,?你?了新的shell就??l?$PATH的值已?不包含??才?定的node目?了。

要解?Q??????就是利用

$ nvm alias default <version>

?碓O定一????的node版本:

$ nvm alias default 5.7.0
default -> 5.7 (-> v5.7.0)

此?r再打?另一??shell?窗,就可以直接使用你所?定的node版本了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
网页的标准,IMG不支持onload标签怎么办
Jun 29 Javascript
几个比较实用的JavaScript 测试及效验工具
Apr 18 Javascript
使用documentElement正确取得当前可见区域的大小
Jul 25 Javascript
jQuery修改class属性和CSS样式整理
Jan 30 Javascript
js实现简易的单数字随机抽奖(0-9)
Mar 19 Javascript
jQuery Validate验证框架经典大全
Sep 23 Javascript
JS HTML5拖拽上传图片预览
Jul 18 Javascript
jQuery中fadein与fadeout方法用法示例
Sep 16 Javascript
Node.js利用断言模块assert进行单元测试的方法
Sep 28 Javascript
vue-resource + json-server模拟数据的方法
Nov 02 Javascript
基于jQuery Ajax实现下拉框无刷新联动
Dec 06 jQuery
对vue下点击事件传参和不传参的区别详解
Sep 15 Javascript
浅谈vue-router2路由参数注意的问题
Nov 08 #Javascript
基于jQuery中ajax的相关方法汇总(必看篇)
Nov 08 #jQuery
javaScript之split与join的区别(详解)
Nov 08 #Javascript
AngularJs 终极购物车(实例讲解)
Nov 08 #Javascript
js实现图片粘贴上传到服务器并展示的实例
Nov 08 #Javascript
vue实现仿淘宝结账页面实例代码
Nov 08 #Javascript
vue-router路由与页面间导航实例解析
Nov 07 #Javascript
You might like
上海地方志办公室-上海电子仪表工业志
2021/03/04 无线电
用穿越火线快速入门php面向对象
2012/02/22 PHP
php正则判断是否为合法身份证号的方法
2017/03/16 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
JS 文字符串转换unicode编码函数
2009/05/30 Javascript
当前流行的JavaScript代码风格指南
2014/09/10 Javascript
jQuery实现鼠标经过图片变亮其他变暗效果
2015/05/08 Javascript
jquery利用json实现页面之间传值的实例解析
2016/12/12 Javascript
用jQuery实现圆点图片轮播效果
2017/03/19 Javascript
Ionic3 UI组件之Gallery Modal详解
2017/06/07 Javascript
Express + Node.js实现登录拦截器的实例代码
2017/07/01 Javascript
AngularJS表单验证功能
2017/10/19 Javascript
vue + vuex todolist的实现示例代码
2018/03/09 Javascript
cdn模式下vue的基本用法详解
2018/10/07 Javascript
vue.draggable实现表格拖拽排序效果
2018/12/01 Javascript
解决微信浏览器缓存站点入口文件(IIS部署Vue项目)
2019/06/17 Javascript
nodejs开发一个最简单的web服务器实例讲解
2020/01/02 NodeJs
axios解决高并发的方法:axios.all()与axios.spread()的操作
2020/11/09 Javascript
[06:07]DOTA2-DPC中国联赛 正赛 Ehome vs VG 选手采访
2021/03/11 DOTA
python在不同层级目录import模块的方法
2016/01/31 Python
Python  unittest单元测试框架的使用
2018/09/08 Python
Python实现正则表达式匹配任意的邮箱方法
2018/12/20 Python
在Python中调用Ping命令,批量IP的方法
2019/01/26 Python
两个元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函数将其转变成[{'a': 'c'},{'b': 'd'}]的几种方法
2019/03/05 Python
python简单区块链模拟详解
2019/07/03 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
Python Selenium异常处理的实例分析
2021/02/28 Python
英国的屈臣氏:Boots博姿
2017/12/23 全球购物
Missguided美国官网:英国时尚品牌
2018/01/18 全球购物
心得体会范文
2014/01/04 职场文书
面试后的英文感谢信
2014/02/01 职场文书
学生自我鉴定格式及范文
2014/09/16 职场文书
师范生免费教育协议书范本
2014/10/09 职场文书
2014年组织委员工作总结
2014/12/01 职场文书
盗窃罪辩护词范文
2015/05/21 职场文书
实习报告怎么写
2019/06/20 职场文书