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问题整理
Aug 16 Javascript
javascript设计模式 封装和信息隐藏(上)
Jul 24 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
Sep 26 Javascript
js中flexible.js实现淘宝弹性布局方案
Jun 23 Javascript
JS对象的深度克隆方法示例
Mar 16 Javascript
Vue封装一个简单轻量的上传文件组件的示例
Mar 21 Javascript
微信小程序实现图片上传功能
May 28 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
Sep 18 Javascript
基于vue-upload-component封装一个图片上传组件的示例
Oct 16 Javascript
详解Node.js amqplib 连接 Rabbit MQ最佳实践
Jan 24 Javascript
如何实现小程序tab栏下划线动画效果
May 18 Javascript
关于Js中new操作符的作用详解
Feb 21 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下的PHP5.0安装配制详解
2006/09/05 PHP
PHP5.0正式发布 不完全兼容PHP4 新增多项功能
2006/10/09 PHP
apache配置虚拟主机的方法详解
2013/06/17 PHP
一个经典的PHP文件上传类分享
2014/11/18 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
JS匀速运动演示示例代码
2013/11/26 Javascript
JavaScript中this关键词的使用技巧、工作原理以及注意事项
2014/05/20 Javascript
jQueryMobile之Helloworld与页面切换的方法
2015/02/04 Javascript
如何实现JavaScript动态加载CSS和JS文件
2020/12/28 Javascript
HTML5游戏引擎LTweenLite实现的超帅动画效果(附demo源码下载)
2016/01/26 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
基于JS实现的随机数字抽签实例
2016/12/08 Javascript
Node.js中process模块常用的属性和方法
2016/12/13 Javascript
Bootstrap 模态框实例插件案例分析
2016/12/28 Javascript
Bootstrap模态框案例解析
2017/03/05 Javascript
vue指令做滚动加载和监听等
2019/05/26 Javascript
ES6 Object方法扩展的应用实例分析
2019/06/25 Javascript
实例讲解React 组件
2020/07/07 Javascript
js实现限定区域范围拖拉拽效果
2020/11/20 Javascript
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
用Python脚本生成Android SALT扰码的方法
2013/09/18 Python
Python中的日期时间处理详解
2016/11/17 Python
python Popen 获取输出,等待运行完成示例
2019/12/30 Python
Python双链表原理与实现方法详解
2020/02/22 Python
Python接口测试get请求过程详解
2020/02/28 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
2020/03/04 Python
shell的种类有哪些
2015/04/15 面试题
《学会合作》教学反思
2014/04/12 职场文书
劳资协议书范本
2014/04/23 职场文书
2015年秋季新学期寄语
2015/03/25 职场文书
撤诉状格式范本
2015/05/19 职场文书
2016年政治理论学习心得体会
2016/01/25 职场文书
《鲸》教学反思
2016/02/23 职场文书
车位出租协议书范本
2016/03/19 职场文书
详解盒子端CSS动画性能提升
2021/05/24 HTML / CSS
浅谈Redis变慢的原因及排查方法
2022/06/21 Redis