# npm 安装包
# 安装本地包
有两种方式用来安装 npm 包:本地安装和全局安装。至于选择哪种方式来安装,取决于我们如何使用这个包。
- 如果你自己的模块依赖于某个包,并通过 Node.js 的
require
加载,那么你应该选择本地安装,这种方式也是npm install
命令的默认行为。 - 如果你想将包作为一个命令行工具,(比如
grunt CLI
),那么你应该选择。
想要了解更多关于 install
命令行的行为,可以查看 CLI 文档
。
# 安装包
# 安装
可以使用下面的命令来安装一个包:
> npm install <package_name>
上述命令执行之后将会在当前的目录下创建一个 node_modules
的目录(如果不存在的话),然后将下载的包保存到这个目录下。
# 测试
为了确认 npm install
是正常工作的,可以检查 node_modules
目录是否存在,并且里面是否含有你安装的包的文件夹。
# 实例
安装一个叫做 lodash
的包。安装成功之后,如果 node_modules
目录下存在一个名为 lodash
的文件夹,则说明成功安装了这个包。
Microsoft Windows:
C:\ npm install lodash
C:\ dir node_modules
#=> lodash
macOS, Ubuntu, Debian
> npm install lodash
> ls node_modules
#=> lodash
# 哪个版本的包被安装
在本地目录中如果没有 package.json
这个文件的话,那么最新版本的包会被安装。
如果存在 package.json
文件,则会在 package.json
文件中查找针对这个包所约定的 语义化版本规则
,然后安装符合此规则的最新版本。
# 使用已安装的包
一旦将包安装到 node_modules
目录中,你就可以使用它了。比如在你所创建的 Node.js 模块中,你可以 require
这个包。
# 实例
创建一个名为 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'
可以在 index.js
所在的目录中运行 npm install lodash
命令来修复这个问题。
# 安装全局包
有两种方式用来安装 npm 包:本地安装和全局安装。选用哪种方式来安装,取决于你如何使用这个包。
如果你想将其作为一个命令行工具,那么你应该将其安装到全局。这种安装方式后可以让你在任何目录下使用这个包。比如 grunt
就应该以这种方式安装。
如果你想依赖你自己模块中的包,请在本地安装。例如,如果使用了 require
语句,你将使用此选项。
将包安装到全局,你应该使用 npm install -g <package>
命令,例如:
npm install -g jshint
如果你遇到 EACCES 错误,请查看 NPM 防止权限错误
。