版本管理 #
~
: 当安装依赖时获取到有新版本时,安装到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.org
npx #
Node 自带 npm 模块,安装 Node.js 后可以直接使用 npx 命令。