npm 包管理器简介
npm 简介
npm
是 Node.js 的标准包管理器。
截至 2022 年 9 月,npm 注册表中已列出超过 210 万个包,使其成为地球上最大的单一语言代码库,你可以确信几乎所有东西都有一个包。
它最初是作为一种下载和管理 Node.js 包依赖项的方式,但现在已成为前端 JavaScript 中也使用的工具。
包
npm
管理项目依赖项的下载。
安装所有依赖项
如果项目包含 package.json
文件,则通过运行
npm install
它将安装项目所需的一切,在 node_modules
文件夹中,如果该文件夹不存在,则创建它。
安装单个包
你也可以通过运行以下命令来安装特定的包
npm install <package-name>
此外,从 npm 5 开始,此命令将 <package-name>
添加到 package.json
文件的 dependencies 中。在版本 5 之前,你需要添加标志 --save
。
通常你会看到更多标志添加到此命令中
--save-dev
安装并将条目添加到package.json
文件的 devDependencies 中--no-save
安装但不将条目添加到package.json
文件的 dependencies 中--save-optional
安装并将条目添加到package.json
文件的 optionalDependencies 中--no-optional
将阻止安装可选依赖项
也可以使用标志的简写
- -S:
--save
- -D:
--save-dev
- -O:
--save-optional
devDependencies 和 dependencies 之间的区别在于,前者包含开发工具,例如测试库,而后者则与生产环境中的应用程序捆绑在一起。
至于 optionalDependencies,区别在于依赖项的构建失败不会导致安装失败。但你的程序有责任处理依赖项的缺失。阅读有关 可选依赖项 的更多信息。
更新包
更新也很容易,只需运行
npm update
npm
将检查所有包是否有满足您的版本约束的更新版本。
您也可以指定要更新的单个包
npm update <package-name>
版本控制
除了简单的下载之外,npm
还管理着 **版本控制**,因此您可以指定包的任何特定版本,或要求高于或低于您需要的版本。
很多时候,您会发现一个库只与另一个库的主要版本兼容。
或者,最新版本的库中存在一个尚未修复的错误,导致了问题。
指定库的显式版本也有助于让每个人都使用同一个版本的包,这样整个团队就可以运行同一个版本,直到 package.json
文件更新。
在所有这些情况下,版本控制都很有帮助,npm
遵循语义版本控制 (semver) 标准。
您可以通过运行以下命令来安装包的特定版本
npm install <package-name>@<version>
运行任务
package.json
文件支持一种格式,用于指定可以使用以下命令运行的命令行任务
npm run <task-name>
例如
{
"scripts": {
"start-dev": "node lib/server-development",
"start": "node lib/server-production"
}
}
使用此功能运行 Webpack 非常常见
{
"scripts": {
"watch": "webpack --watch --progress --colors --config webpack.conf.js",
"dev": "webpack --progress --colors --config webpack.conf.js",
"prod": "NODE_ENV=production webpack -p --config webpack.conf.js"
}
}
因此,您可以运行以下命令,而不是键入那些容易忘记或拼写错误的长命令
$ npm run watch
$ npm run dev
$ npm run prod