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 相关文章推荐
JQuery中DOM加载与事件执行实例分析
Jun 13 Javascript
JavaScript中实现无缝滚动、分享到侧边栏实例代码
Apr 06 Javascript
jQuery实现字体颜色渐变效果的方法
Mar 29 jQuery
ES6新特性之Symbol类型用法分析
Mar 31 Javascript
移动端web滚动分页的实现方法
May 05 Javascript
jquery ajax异步提交表单数据的方法
Oct 27 jQuery
Angular实现下拉框模糊查询功能示例
Jan 03 Javascript
vue.js使用v-if实现显示与隐藏功能示例
Jul 06 Javascript
vue之a-table中实现清空选中的数据
Nov 07 Javascript
Vue router传递参数并解决刷新页面参数丢失问题
Dec 02 Vue.js
如何在vue-cli中使用css-loader实现css module
Jan 07 Vue.js
详解Typescript里的This的使用方法
Jan 08 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
怎么在Windows系统中搭建php环境
2013/08/31 PHP
两种php给图片加水印的实现代码
2020/04/18 PHP
纯JAVASCRIPT图表动画插件Highcharts Examples
2011/04/16 Javascript
javascript异步编程的4种方法
2014/02/19 Javascript
Javascript中call与apply的学习笔记
2014/09/22 Javascript
javascript图片滑动效果实现
2021/01/28 Javascript
基于JavaScript实现瀑布流布局(二)
2016/01/26 Javascript
深入理解JS中的substr和substring
2016/04/26 Javascript
仿Angular Bootstrap TimePicker创建分钟数-秒数的输入控件
2016/07/01 Javascript
Angularjs修改密码的实例代码
2017/05/26 Javascript
快速掌握jquery分页插件jqPaginator的使用方法
2017/08/09 jQuery
JavaScript 跨域之POST实现方法
2018/05/07 Javascript
浅谈React Event实现原理
2018/09/20 Javascript
Node.js的进程管理的深入理解
2019/01/09 Javascript
vue中v-text / v-html使用实例代码详解
2019/04/02 Javascript
layui实现数据表格table分页功能(ajax异步)
2019/07/27 Javascript
原生js实现下拉选项卡
2019/11/27 Javascript
Python 调用DLL操作抄表机
2009/01/12 Python
详细介绍Python的鸭子类型
2016/09/12 Python
基于Python和Scikit-Learn的机器学习探索
2017/10/16 Python
python使用pycharm环境调用opencv库
2018/02/11 Python
Python使用matplotlib绘制随机漫步图
2018/08/27 Python
python利用百度AI实现文字识别功能
2018/11/27 Python
Python实现FM算法解析
2019/06/18 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
2019/08/09 Python
Python3进制之间的转换代码实例
2019/08/24 Python
决策树剪枝算法的python实现方法详解
2019/09/18 Python
python flask中动态URL规则详解
2019/11/22 Python
Python列表嵌套常见坑点及解决方案
2020/09/30 Python
html5 sessionStorage会话存储_动力节点Java学院整理
2017/07/06 HTML / CSS
GWT都有什么特性
2016/12/02 面试题
大专毕业生自我鉴定
2013/11/21 职场文书
2014年寒假社会实践活动心得体会
2014/04/07 职场文书
涨价通知怎么写
2015/04/23 职场文书
写给消防战士们的一封慰问信
2019/10/07 职场文书
蓝牙耳机怎么连接电脑win11? Win11蓝牙耳机连接电脑的技巧
2023/01/09 数码科技