brew 下 安装node 和 npm

一.
node 和 npm 区别

其实npm是nodejs的包管理器(package manager)。我们在Node.js上开发时,会用到很多别人已经写好的javascript代码,如果每当我们需要别人的代码时,都根据名字搜索一下,下载源码,解压,再使用,会非常麻烦。于是就出现了包管理器npm。大家把自己写好的源码上传到npm官网上,如果要用某个或某些个,直接通过npm安装就可以了,不用管那个源码在哪里。并且如果我们要使用模块A,而模块A又依赖模块B,模块B又依赖模块C和D,此时npm会根据依赖关系,把所有依赖的包都下载下来并且管理起来。试想如果这些工作全靠我们自己去完成会多么麻烦!!!

二.
brew是一个软件包管理工具,类似于centos下的yum或者ubuntu下的apt-get,非常方便,免去了自己手动编译安装的不便
  brew 安装目录 /usr/local/Cellar
  brew 配置目录 /usr/local/etc
  brew 命令目录 /usr/local/bin 注:homebrew在安装完成后自动在/usr/local/bin加个软连接,所以平常都是用这个路径

brew search 软件名,如brew search wget //搜索软件
brew install 软件名,如brew install wget//安装软件
brew remove 软件名,如brew remove wget//卸载软件
brew install git

使用 brew 去安装 卸载 node

brew install -g node

brew uninstall nodejs

安装指定版本的node
旧版的brew,可以通过brew versions nodejs,运行后会提示 Error: The versions command is no longer supported. brew versions已废弃掉了。
1、需要安装homebrew-version
brew tap homebrew/versions
2、查看可安装的node版本
brew install homebrew/versions/node

20160720134624160.png

3、选择按一个node的版本
brew install homebrew/versions/node5
这样就可以成功安装node5.x版本

三.

使用Brew 安装了 node
现在我们看下

3.1
nvm 作用 (Node Version Manager)

使用nvm利器,管理node版本

node.js越来越热,应用的场景也越来越多。
但也因为是开源软件,所以具备大多数开源软件都存在的“版本问题”,版本发展很快,版本前后差异性大,老系统用新版本node跑不过,全局安装的第三方组件和node版本相关造成全局版本混乱。
nvm是解决这一问题的利器。
nvm是node版本管理工具,主要特点:
1.可安装多版本的node。
2.灵活切换当前的node版本。
3.以沙箱方式全局安装第三方组件到对应版本的node中。
4.通过.vnmrc文件,方便灵活地指定各应用系统所需的node版本进行运行。
可惜目前只支持linux,OS系统。
接下来,就见证一下它的能力。

3.2 删除Node

brew uninstall node@6..

如果之前通过'brew install node'方式安装过node,那么需要先删除系统中存在的node:
brew remove --force node
sudo rm -r /usr/local/lib/node_modules

brew prune
sudo rm -r /usr/local/include/node
把Node 删除干净了

3.3安装nvm

brew install nvm

我们来装一下 node 6
nvm install 6
安装成功后,使用nvm use 来切换版本
nvm use v6.12.3

node v6.12.3 (npm v3.10.10)

同时npm 也安装完毕

3.4
但是现在去搜索npm -v 或者 node -v 会出现 command not found
这是由于 echo $PATH

echo $PATH
显示当前PATH环境变量,该变量的值由一系列以冒号分隔的目录名组成。如:/usr/local/bin:/bin:/usr/bin。当我们执行程序时,shell自动跟据PATH变量的值去搜索该程序。比如我们现在的工作目录是根目录/ ,有一个程序sunrise在/bin/目录下,我们可以在命令行输入/bin/sunrise 这样来执行它,还可以直接输入sunrise,这时shell会自动去寻找sunrise这个程序所在的完整路径,找到之后才会去执行该程序。shell在搜索时先搜索PATH环境变量中的第一个目录,没找到再接着搜索,如果找到则执行它,不会再继续搜索。

因此:

我把 npm 卸了 用 brew 重新装了 node 6

brew search node
有node 6@
(删除的时候,名字也必须一致 node 6@)

打开终端 执行下面的四句 命令:
brew update brew uninstall node
$ brew install node

//这个时候 node -v就会有你期望的东西
$ sudo brew postinstall node

推荐阅读更多精彩内容