使用nvm管理不同版本的node与npm的方法
本文介绍了使用nvm管理不同版本的node与npm,分享给大家,具体如下:
补充说明:Mac下通过brewinstallnvm所安装的nvm,由于安装路径不同,无法正确启用。建议使用brewuninstallnvm卸载掉之后,通过本文的方案重新安装一次。
最近NodeJS的版本更新速度有点Chrome的迹象,4.0版本没发布多久,又推出了5.0。升级NodeJS之后可以很方便的开始使用一些ES6的语言特性,但又会导致团队内部的mz-fis框架无法更新,因为它暂时只支持v0.12版本。于是团队开始试用管理node版本的工具 nvm,试用后发现Mac下很好用,推荐大家尽快用起来。
nvm是Mac下的node管理工具,有点类似管理Ruby的rvm,如果是需要管理Windows下的node,官方推荐是使用nvmw或nvm-windows。
以下具体说下Mac系统中的安装与使用细节(Windows系统仅供类比参考)。
一、卸载已安装到全局的node/npm
如果之前是在官网下载的node安装包,运行后会自动安装在全局目录,其中
node命令在/usr/local/bin/node,npm命令在全局node_modules目录中,具体路径为/usr/local/lib/node_modules/npm
安装nvm之后最好先删除下已安装的node和全局node模块:
npmls-g--depth=0#查看已经安装在全局的模块,以便删除这些全局模块后再按照不同的node版本重新进行全局安装
sudorm-rf/usr/local/lib/node_modules#删除全局node_modules目录 sudorm/usr/local/bin/node#删除node cd/usr/local/bin&&ls-l|grep"../lib/node_modules/"|awk'{print$9}'|xargsrm#删除全局node模块注册的软链
二、安装nvm
curl-o-https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh|bash
安装完成后请重新打开终端环境,Mac下推荐使用oh-my-zsh代替默认的bashshell。
三、安装切换各版本node/npm
nvminstallstable#安装最新稳定版node,现在是5.0.0 nvminstall4.2.2#安装4.2.2版本 nvminstall0.12.7#安装0.12.7版本 #特别说明:以下模块安装仅供演示说明,并非必须安装模块 nvmuse0#切换至0.12.7版本 npminstall-gmz-fis#安装mz-fis模块至全局目录,安装完成的路径是/Users/<你的用户名>/.nvm/versions/node/v0.12.7/lib/mz-fis nvmuse4#切换至4.2.2版本 npminstall-greact-native-cli#安装react-native-cli模块至全局目录,安装完成的路径是/Users/<你的用户名>/.nvm/versions/node/v4.2.2/lib/react-native-cli nvmaliasdefault0.12.7#设置默认node版本为0.12.7
四、使用.nvmrc文件配置项目所使用的node版本
如果你的默认node版本(通过nvmalias命令设置的)与项目所需的版本不同,则可在项目根目录或其任意父级目录中创建.nvmrc文件,在文件中指定使用的node版本号,例如:
cd<项目根目录>#进入项目根目录 echo4>.nvmrc#添加.nvmrc文件 nvmuse#无需指定版本号,会自动使用.nvmrc文件中配置的版本 node-v#查看node是否切换为对应版本
五、nvm与n的区别
node版本管理工具还有一个是TJ大神的n命令,n命令是作为一个node的模块而存在,而nvm是一个独立于node/npm的外部shell脚本,因此n命令相比nvm更加局限。
由于npm安装的模块路径均为/usr/local/lib/node_modules,当使用n切换不同的node版本时,实际上会共用全局的node/npm目录。因此不能很好的满足『按不同node版本使用不同全局node模块』的需求。
因此建议各位尽早开始使用nvm,以免出现全局模块无法更新的问题。
当然,如果你用的是windows操作系统,我只能说……朋友,能不能早点换个Mac,做一个有品位的程序猿呢:P
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。