一、安装
有两种方式用来安装 npm 包:本地安装和全局安装。至于选择哪种方式来安装,取决于我们如何使用这个包。
- 如果你自己的模块依赖于某个包,并通过 Node.js 的
require
加载,那么你应该选择本地安装,这种方式也是npm install
命令的默认行为。 - 如果你想将包作为一个命令行工具,(比如 grunt CLI,webpack CLI,vue CLI,pug CLI),那么你应该选择全局安装。
想要了解更多,可以参考CLI文档
安装一个package
可以使用下面的命令来安装一个包:
npm install <package_name>
上述命令执行之后将会在当前的目录下创建一个 node_modules 的目录(如果不存在的话),然后将下载的包保存到这个目录下。
测试
为了确认 npm install 是正常工作的,可以检查 node_modules 目录是否存在,并且里面是否含有你安装的包的文件夹。
实例
安装一个叫做 lodash 的包。安装成功之后,如果 node_modules 目录下存在一个名为 lodash 的文件夹,则说明成功安装了这个包。
Microsoft Windows:
npm install lodash
dir node_modules
macOS, Ubuntu, Debian
npm install lodash
ls node_modules
哪个版本的包会被安装了?
在本地目录中如果没有 package.json
这个文件的话,那么最新版本的包会被安装。
如果存在 package.json
文件,则会在 package.json
文件中查找针对这个包所约定的语义化版本规则,然后安装符合此规则的最新版本。
使用已安装的package
一旦将包安装到 node_modules 目录中,你就可以使用它了。比如在你所创建的 Node.js 模块中,你可以 require 这个包。
举个例子
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 命令来修复这个问题。
二、更新
定期更新你的应用所依赖的包(package)是个好习惯。因为依赖包的开发者更新了代码,你的应用也就能够获得提升。
为了完成这个任务需要:
- 在 package.json 文件所在的目录中执行 npm update 命令。
- 执行 npm outdated 命令。不应该有任何输出。
深入学习
npm-update
npm-outdated
三、卸载
如何卸载本地安装的包
如需删除 node_modules 目录下面的包(package),请执行:
npm uninstall <package>:
举个栗子
npm uninstall lodash
如需从 package.json 文件中删除依赖,需要在命令后添加参数 --save:
npm uninstall --save lodash
注意:如果你将安装的包作为 "devDependency"(也就是通过 --save-dev 参数保存的),那么 --save 无法将其从 package.json 文件中删除。所以必须通过 --save-dev 参数可以将其卸载。
测试:
为了确定 npm uninstall 命令执行成功,请找到 node_modules 目录,并在此目录下检查你所卸载的包(package)所对应的目录是否消失了。
卸载 lodash
npm uninstall lodash
dir node_modules
注意点
单独使用cnpm/yarn是没问题的,由于它们是不兼容的,所以混合使用是项目的开发出现问题。所以尽量单独使用一种工具。
如果出现问题了,最简单最笨的方法是,删除node_modules/,然后npm|cnpm|yarn install来重新下载。