NPM package.json 中的 tilde (~) 和 caret (^)

原文:What’s the difference between a tilde (~) and a caret (^) in a npm package.json file?

如果你用 npm 来管理 JavaScript 应用程序的 package ,那你应该熟悉 package.json 文件了。

1
2
3
4
5
{
"devDependencies": {
"ember-cli": "~2.14.0"
}
}

语法是 JSON 格式,key 是 package 的名称,value 是要使用的这个 package 的版本号。

npm 就是用 package.json 文件来声明你的 app 依赖的 package 的版本的。

版本号以 semver 语法 表示,它指定每个部分具有不同的含义。semver 被点号划分成 3 各部分。

1
2
3
major.minor.patch

1.0.2

Major,minor 和 patch 代表包的不同发行版本。

Npm 用波浪线(~)和插入符(^)来分别指定要使用的 patch(补丁)和 minor(小)版本。

所以如果你看到了 ~1.0.2 就表示要安装 1.0.2 或以上的 patch 版本,例如 1.0.4 。如果你看到 ^1.0.2 就表示要安装 1.0.2 或者最新的 minor 版本或者 patch 版本,例如 1.1.0

本文标题:NPM package.json 中的 tilde (~) 和 caret (^)

文章作者:kinboy

发布时间:2018年10月12日 - 16:33:27

最后更新:2019年07月15日 - 18:05:10

原始链接:http://kinboyw.github.io/2018/10/12/difference-between-tilde-and-caret-in-npm-packagefile/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

------ Passage Ending ------