pupuk / blog

My New Blog. Record & Share. Focus on PHP, MySQL, Javascript and Golang.
MIT License
9 stars 2 forks source link

安装nvm和多版本的Nodejs #14

Open pupuk opened 5 years ago

pupuk commented 5 years ago

安装Nodejs(npm) npm,nodejs package manager是nodejs的包管理工具,现在nodejs中集成了npm。所以安装好nodejs以后,就会安装好npm

node -v npm -v 可以查看版本,或者知道是否安装好了nodejsnpm

安装node,在centos中 1、可以用yum安装,但是版本一般比较老。 2、下载nodejs的二进制文件,但可能需要解决依赖。 3、编译安装。

上面三种方案都有一些不方便的地方,同时,node的版本比较多,目前有0.x,4.x,6.x,8.x,10.x,11.x 其中奇数是开发版,偶数版本是稳定版本。LTS表示 long time support,是长期支持版本。

很多时候,我们A项目是6.x版本开发运行,B项目是8.x的版本开发运行,需要我们在一台机器上安装多个版本,这个事情手动的话,还是有些不太方便。所以需要有一个好用的node版本管理工具。目前大家经常使用的主要有这几个工具。

这个链接:https://www.npmjs.com/get-npm 有关于node版本管理工具的介绍

Node.js version manager有 nvm https://github.com/creationix/nvm nodist https://github.com/nullivex/nodist n https://github.com/tj/n nave https://github.com/isaacs/nave

其中nmv和n大家用的比较多,阿里的前端有一片文章还专门比较了nvm和n工具(http://www.yyyweb.com/4591.html)。这里以nmv为例 nvm的安装可以参考github的说明 https://github.com/creationix/nvm

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

image1 安装过程会给 /root/.bashrc文件追加3行配置,如图所示 image2

然后执行命令:source /root/.bashrc 这是时候可以试试: command -v nvm image3 如果有nvm显示,表示nvm安装成功。

如果你的shell使用的zsh,而不是bash的话,记得复制这三行,追加到/root/.zshrc文件后面,然后source /root/.zshrc 再重新开一个新的shell窗口,试试command -v nvm命令,看看nvm在zsh的bash中生效与否。 其实我上面的截图,显示的左边不是#号,而是一个向右的箭头,说明使用的zsh。

使用nvm安装多个版本的nodejs,先把nvm常用命令写出来: nvm ls-remote --lts # 查看最新 LTS 版本 nvm ls # 查看当前机器已经安装的版本 nvm install 8.9.4 # 安装指定版本 nvm install 8 # 安装 8.x 最新版本 nvm uninstall # 卸载,使用方式与install类似 nvm use 8.9.4 # 当前shell会话,使用指定版本 nvm use 8 # 当前shell会话,使用 8.x 最新版本 nvm current # 查看当前版本 nvm alias default v10.10.0 #切换默认版本

更多的使用可以看nvm --help

比如: nvm ls-remote --lts nvm install 8

如果遇到安装过程中比较慢,很有可是是nvm使用的源是国外的,我们可以切换成阿里的源。在/root/.bashrc 或者 /root/.zshrc文件末尾追加 export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node 重新source这两个文件,即可生效

image4 谢谢忽略到我的箭头懵比。。

有了npm包管理工具,安装babeleslintwebpack就容易的多了。

题外话:现在前端确实越来越工程化了,尽管我最爱的还是phpgo. 前端的这一套:Vscode+ESlint, ES6+bable, webpack, vue OR react ...不得不说,也很不错。