使用最新的主要版本

Use latest major version

在我的 JavaScript 应用程序中,我可能会在我的 package.json 文件中声明几十个依赖项。

检查每个依赖项并查看它们在哪个版本上需要一些时间。

我只想说:使用最新的主要版本,而不是最前沿的。

举个例子,使用像 Git 这样的工具,我通常不关心在补丁级别进行更改,但如果出现新的主要版本,我会想要它。

在指定npm模块的版本时是否有类似的概念?

NPM 包(理论上)使用 SemVer.

在 SemVer 中,包的版本号为 X.Y.Z

Z 表示错误修复。 Y 表示没有改变现有功能的新功能。 X 表示破坏向后兼容性的主要版本。

执行 npm install --save <package> 将在您的 package.json 中生成一个版本字符串,如 ^2.3.9,这意味着 "anything in the 2.* range greater than or equal to 2.3.9"。这意味着您将获得错误修复和非破坏性新功能,但不会意外更新到破坏应用程序的版本 3.0.0。

注意:我说"theoretically"是因为不是每个人都坚持SemVer的理想。您可能会发现 2.3.9 -> 2.3.10 升级有时会破坏内容。测试在这里很方便。

使用npm i -S <pkg>通常应该做正确的事情。

一些注意事项:

  • 以上假设您是否正在对 <pkg> 进行运行时依赖。在安装开发人员工具(如 grunt)时使用 -D-G 而不是 -S

  • Semantic versioning rule 9 表示发布者可以使用 -beta 等后缀来识别预发布版本。 Npm 依赖它,所以如果包发布者 FAILS 这样做,你可能会在不知情的情况下依赖预发布包。经验丰富的 npm 发布者应该了解得更多,而经验丰富的 npm 消费者应该查看文档。

  • 主要版本为“0”表示该软件包仍处于初始开发阶段,不应将其视为稳定版。 (Semantic versioning rule 4.)

  • 考虑使用 npm dist-tag ls <pkg> 查看是否有一些特定于包的标签比 latest 更能识别您的意图。如果是这样,请使用 npm I -S <pkg>@<tag> 来跟踪该标签。

您始终可以使用 npm outdated 来检查您是否直接依赖于具有新主要版本的包可能要考虑升级到。主要版本升级不会自动发生是设计使然。