Node.js安装教程和NPM包管理器使用详解_node.js(3)
到目前为止,你只能使用Node本身的语言特性和核心函数,这就是为什么大多数程序平台都有一个用来下载、安装,管理第三方模块的系统,在Node里,我们使用Node包管理器(NPM: Node Package Manager)
NPM包含三部分:一个用来存放第三方包的代码库,一个管理本地已经安装包的机制,一个用来定义包依赖关系的标准。NPM提供了一个公共的注册服务,它包含了大家发布的所有包,并提供了一个命令行工具,用来下载,安装和管理这些包。你可以按照Node的包格式标准来制定你的包或者应用需要依赖的其他第三方包。
虽然不用了解NPM就可以开始使用Node,但是如果要用第三方包你就必须要学习它了,因为Node本身只提供了一些低层的API,使用第三方模块可以大幅减少开发复杂度,不用什么都得亲自编码。NPM允许你在一个沙箱里下载和使用模块,你可以尽情地试验你感兴趣的东西,而不用担心污染全局的包环境。
NPM和 Node以前需要独立安装,从0.6.0版本以后,NPM已经包含在了Node安装包里。
使用NPM来安装,升级和卸载包
NPM非常强大,你可以用很多方式来使用,它的代码库集中管理了所有的公共模块,你可以通过http://search.npmjs.org来访问它。Node开源模块的作者可以把自己的模块发布到NPM上,其他人就可以用包安装描述里的模块名来下载,安装这个模块。
这部分内容,包含一些安装,删除包的常用操作,知道这些足以让你开始管理你自己应用程序所依赖的第三方包了,虽然如此,你首先还是需要明白这些命令在“全局”和“本地”模式下的区别,以及他们是如何影响依赖关系和模块查找的。
NPM模块的全局和本地模式
NPM的操作主要有两种模式:全局和本地。这两种模式会影响包存放的目录结构,以及Node加载包时的顺序。
本地模式是NPM的默认操作模式,在这个模式下,NPM只工作在工作目录下,不会造成系统范围的修改,这个模式让你在某个Node程序下尽情地安装,测试模块,而不会影响你电脑上的其他Node程序。
全局模式适合那些将被很多程序使用,而且总是被全局加载的公共模块,比如命令行工具这些公不会被应用程序直接使用的模块。
如果你不知道一个模块该用哪个模式安装,那就应该使用本地模式。如果一个模块的作者需要某个模块被全局的安装,通常他会在安装说明里指出。
全局模式
如果你安装Node时使用的默认目录,在全局模式下面,NPM会把包安装到/usr/local/lib/node_modules。如果你执行下面的命令,NPM会搜索并下载名为sax的最新版并安装到/usr/local/lib/node_modules/sax目录下。
注意:如果你当前shell用户没有足够的权限,你需要使用root用户登录或者使用sudo来执行命令:
$ sudo npm install –g sax
随后在你的Node脚本里需要sax模块的时候,使用下面的语句来加载:
var sax = require(‘sax');
如果你没有在应用程序目录下用本地模式安装过sax,Node将会在前面的安装目录里查找名为sax的模块,否则会优先加载本地版本。
默认模式是本地模式,因此你需要在NPM命令后加上-g标记来启用全局模式。
本地模式