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 相关文章推荐
测试你的JS的掌握程度的代码
Dec 09 Javascript
Javascript load Page,load css,load js实现代码
Mar 31 Javascript
JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述
Apr 15 Javascript
基于jQuery判断两个元素是否有重叠部分的代码
Jul 25 Javascript
javascript实现密码验证
Nov 10 Javascript
js图片跟随鼠标移动代码
Nov 26 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
Feb 09 Javascript
JS滚轮控制图片缩放大小和拖动的实例代码
Nov 20 Javascript
新手快速入门JavaScript装饰者模式与AOP
Jun 24 Javascript
JavaScript this指向相关原理及实例解析
Jul 10 Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
Jul 20 Javascript
如何实现vue的tree组件
Dec 03 Vue.js
浅谈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
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
2010/12/29 PHP
深入解析php中的foreach问题
2013/06/30 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
2014/09/04 PHP
PHP实现通过strace定位故障原因的方法
2018/04/29 PHP
用jQuery实现检测浏览器及版本的脚本代码
2008/01/22 Javascript
js监听表单value的修改同步问题,跨浏览器支持
2009/12/31 Javascript
图片轮换效果实现代码(点击按钮停止执行)
2013/04/12 Javascript
js动态创建上传表单通过iframe模拟Ajax实现无刷新
2014/02/20 Javascript
javacript使用break内层跳出外层循环分析
2015/01/12 Javascript
JavaScript简单判断复选框是否选中及取出值的方法
2015/08/13 Javascript
JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系
2015/11/15 Javascript
jQuery+CSS3实现四种应用广泛的导航条制作实例详解
2016/09/17 Javascript
Jquery鼠标放上去显示全名的实现方法
2017/02/06 Javascript
JS禁止浏览器右键查看元素或按F12审查元素自动关闭页面示例代码
2017/09/07 Javascript
JavaScript实现打印星型金字塔功能实例分析
2017/09/27 Javascript
Vuejs中使用markdown服务器端渲染的示例
2017/11/22 Javascript
Vue实现点击后文字变色切换方法
2018/02/11 Javascript
js获取html页面代码中图片地址的实现代码
2018/03/05 Javascript
vue 组件中添加样式不生效的解决方法
2018/07/06 Javascript
JS实现百度搜索框关键字推荐
2020/02/17 Javascript
手把手教你实现 Promise的使用方法
2020/09/02 Javascript
[54:17]DOTA2-DPC中国联赛定级赛 RNG vs iG BO3第二场 1月10日
2021/03/11 DOTA
Python创建xml文件示例
2017/03/22 Python
深入浅析Python的类
2018/06/22 Python
python 处理telnet返回的More,以及get想要的那个参数方法
2019/02/14 Python
Python中面向对象你应该知道的一下知识
2019/07/10 Python
Python传递参数的多种方式(小结)
2019/09/18 Python
python3 正则表达式基础廖雪峰
2020/03/25 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
2020/04/29 Python
Python实现CAN报文转换工具教程
2020/05/05 Python
Pycharm编辑器功能之代码折叠效果的实现代码
2020/10/15 Python
Django配置跨域并开发测试接口
2020/11/04 Python
python openpyxl模块的使用详解
2021/02/25 Python
尼克松手表官网:Nixon手表
2019/03/17 全球购物
System.Array.CopyTo()和System.Array.Clone()有什么区别
2016/06/20 面试题
先进个人推荐材料
2014/12/29 职场文书