版本管理#
~: 当安装依赖时获取到有新版本时,安装到x.y.z中z的最新的版本。即保持主版本号、次版本号不变的情况下,保持修订号的最新版本。^: 当安装依赖时获取到有新版本时,安装到x.y.z中y和z都为最新版本。 即保持主版本号不变的情况下,保持次版本号、修订版本号为最新版本。
参考文档:
在 npm 包版本管理中,版本号通常遵循 语义化版本控制(SemVer) 规范。版本号的格式为 MAJOR.MINOR.PATCH,例如 1.0.0。
^ 符号#
^1.0.0表示兼容1.x.x版本,意味着可以匹配1.0.0及其后续的任何非重大版本更新(即不改变主版本号的更新)。- 例如,
^1.0.0可以匹配1.0.1,1.1.0,1.2.3等等,但不包括2.0.0。
举例:
^1.0.0:匹配>=1.0.0 <2.0.0^0.1.0:匹配>=0.1.0 <0.2.0^0.0.1:匹配>=0.0.1 <0.0.2^0.0.0:匹配0.0.0(仅匹配这个版本)
~ 符号#
~1.0.0表示兼容1.0.x版本,意味着可以匹配1.0.0及其后续的任何补丁更新。- 例如,
~1.0.0可以匹配1.0.1,1.0.2等等,但不包括1.1.0。
举例:
~1.0.0:匹配>=1.0.0 <1.1.0~0.1.0:匹配>=0.1.0 <0.2.0~0.0.1:匹配>=0.0.1 <0.1.0
* 符号#
*表示匹配任何版本。- 例如,
*可以匹配1.0.0,2.0.0,3.4.5等等。
x 或 X 符号#
1.0.x或1.0.X表示匹配1.0.x版本,意味着可以匹配1.0.0,1.0.1,1.0.2等等。1.x或1.X表示匹配1.x.x版本,意味着可以匹配1.0.0,1.1.0,1.2.3等等。
例如:
>=1.0.0 <2.0.0:表示匹配从1.0.0到2.0.0之前的所有版本。>=1.2.3 <=2.3.4:表示匹配从1.2.3到2.3.4之间的所有版本,包括边界值。
package.json 举例#
{
"dependencies": {
"example-package": "^1.0.0", // 兼容 1.x.x 版本
"another-package": "~1.0.0", // 兼容 1.0.x 版本
"yet-another-package": "1.0.x", // 兼容 1.0.x 版本
"any-package": "*", // 任何版本
"specific-package": ">=1.2.3 <2.0.0" // 具体版本范围
}
}在使用 npm install 时,默认的版本范围符号是 ^(插入符号)。这意味着当你安装一个新的包并将其添加到 package.json 文件中的依赖项时,npm 会默认使用 ^ 符号来指定版本范围。
NPM#
install#
执行 npm install xxx 后软件包会被自动地列出在 package.json 文件中的 dependencies 列表下(在 npm 5 之前:必须手动指定 --save)。
当添加了 -D 或 --save-dev 标志时,则会将其安装为开发依赖项(会被添加到 devDependencies 列表),即 npm install xxx -D。
全局安装
npm install xxx -g设置镜像仓库
npm config set registry https://registry.npm.taobao.org
# or
npm config set registry https://registry.npmmirror.com
# revert
npm config set registry https://registry.npmjs.orgnpx#
Node 自带 npm 模块,安装 Node.js 后可以直接使用 npx 命令。