使⽤nvm管理不同版本的node与npm的⽅法
本⽂介绍了使⽤ nvm 管理不同版本的 node 与 npm ,分享给⼤家,具体如下:
补充说明:Mac 下通过 brew install nvm 所安装的 nvm ,由于安装路径不同,⽆法正确启⽤。建议使⽤ brew uninstall nvm 卸载掉之后,通过本⽂的⽅案重新安装⼀次。
最近 NodeJS 的版本更新速度有点 Chrome 的迹象,4.0 版本没发布多久,⼜推出了 5.0 。升级 NodeJS 之后可以很⽅便的开
始使⽤⼀些 ES6 的语⾔特性,但⼜会导致团队内部的框架⽆法更新,因为它暂时只⽀持 v0.12 版本。于是团队开始试⽤管理node 版本的⼯具  nvm,试⽤后发现 Mac 下很好⽤,推荐⼤家尽快⽤起来。
nvm 是 Mac 下的 node 管理⼯具,有点类似管理 Ruby 的 rvm,如果是需要管理 Windows 下的 node,官⽅推荐是使⽤或。
以下具体说下 Mac 系统中的安装与使⽤细节(Windows 系统仅供类⽐参考)。
⼀、卸载已安装到全局的 node/npm
如果之前是在官⽹下载的 node 安装包,运⾏后会⾃动安装在全局⽬录,其中
node 命令在 /usr/local/bin/node ,npm 命令在全局 node_modules ⽬录中,具体路径为 /usr/local/lib/node_modules/npm
安装 nvm 之后最好先删除下已安装的 node 和全局 node 模块:
react native 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
curl -o- raw.githubusercontent/creationix/nvm/v0.29.0/install.sh | bash
安装完成后请重新打开终端环境,Mac 下推荐使⽤代替默认的 bash shell。
三、安装切换各版本 node/npm
nvm install stable #安装最新稳定版 node,现在是 5.0.0
nvm install 4.2.2 #安装 4.2.2 版本
nvm install 0.12.7 #安装 0.12.7 版本
# 特别说明:以下模块安装仅供演⽰说明,并⾮必须安装模块
nvm use 0 #切换⾄ 0.12.7 版本
npm install -g mz-fis #安装 mz-fis 模块⾄全局⽬录,安装完成的路径是 /Users/<;你的⽤户名>/.nvm/versions/node/v0.12.7/lib/mz-fis
nvm use 4 #切换⾄ 4.2.2 版本
npm install -g react-native-cli #安装 react-native-cli 模块⾄全局⽬录,安装完成的路径是 /Users/<;你的⽤户名>/.nvm/versions/node/v4.2.2/lib/react-native-cli nvm alias default 0.12.7 #设置默认 node 版本为 0.12.7
四、使⽤ .nvmrc ⽂件配置项⽬所使⽤的 node 版本
如果你的默认 node 版本(通过 nvm alias 命令设置的)与项⽬所需的版本不同,则可在项⽬根⽬录或其任意⽗级⽬录中创建
.nvmrc ⽂件,在⽂件中指定使⽤的 node 版本号,例如:
cd <;项⽬根⽬录> #进⼊项⽬根⽬录
echo 4 > .nvmrc #添加 .nvmrc ⽂件
nvm use #⽆需指定版本号,会⾃动使⽤ .nvmrc ⽂件中配置的版本
node -v #查看 node 是否切换为对应版本
五、nvm 与 n 的区别
node 版本管理⼯具还有⼀个是命令,n 命令是作为⼀个 node 的模块⽽存在,⽽ nvm 是⼀个独⽴于 node/npm 的外部 shell 脚本,因此 n 命令相⽐ nvm 更加局限。
由于 npm 安装的模块路径均为 /usr/local/lib/node_modules ,当使⽤ n 切换不同的 node 版本时,实
际上会共⽤全局的
node/npm ⽬录。因此不能很好的满⾜『按不同 node 版本使⽤不同全局 node 模块』的需求。
因此建议各位尽早开始使⽤ nvm ,以免出现全局模块⽆法更新的问题。
当然,如果你⽤的是 windows 操作系统,我只能说 …… 朋友,能不能早点换个 Mac ,做⼀个有品位的程序猿呢:P
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。