安装npm包有两种方式:本地安装或全局安装。根据你想如何使用包,你可以选择安装方式。
如果你想要从你自己的模块中通过使用Node.js的require方法来依赖某个包,那你可以本地安装这个包,这是npm安装的默认行为。另外,如果你想当做命令行工具使用它,比如grunt CLI,那你应该全局安这个包。
要学习更多关于安装命令的行为,请查看CLI文档页面。
## 安装
包可以用以下命令下载:
~~~
> npm install <package_name>
~~~
此命令将在你的当前目录创建node_modules目录(若还未安装任何包),并将下载此包到这个目录。
测试
为确保npm安装正确工作,请检查node_modules目录是否存在,以及其下是否包含你安装的包 目录。你可以在Unix系统(如OSX、Debian)中执行“ls node_modules”命令或在Windows系统中执行“dir node_modules”命令来检查。
例子:
安装一个叫“lodash”的包。通过列出node_modules目录内容,看看其中是否存在一个叫“lodash”的目录,来确认成功执行命令。
~~~
> npm install lodash
> ls node_modules # windows中使用 `dir`
#=> lodash
~~~
## 安装的是哪个版本的包?
如果在本地目录中没有package.json文件,那该包的最新版本会被安装了。
如果有package.json文件,那么在package.json中声明的满足semver(语义化版本)规则的最新版本会被安装。
## 使用已安装的包
一旦包被安装在node_modules,你就可以在你的代码中使用它了。比如,当你创建Node.js模块是,你可以引入它。
示例:
创建名为index.js的文件,其中的代码如下:
~~~
// index.js
var lodash = require('lodash');
var output = lodash.without([1, 2, 3], 1);
console.log(output);
~~~
运行命令“node index.js”。终端将输出[2, 3].
如果你没有正确安装lodash,你将收到如下错误:
~~~
module.js:340
throw err;
^
Error: Cannot find module 'lodash'
~~~
解决方法:cd到index.js同级目录,运行“npm install lodash”命令。