mac中利用NVM管理不同node版本的方法详解
前言
大家在开始本文的正文之前,建议大家先看看这篇文章:http://www.lsjlt.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管理。
安装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版本了。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对编程网的支持。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341