【发布时间】:2021-08-28 05:47:14
【问题描述】:
我正在维护一个依赖另一个 NPM 包 (package-B) 来运行的 NPM 包(可以说是 package-A)。因此,我需要将该包作为对等依赖项添加到 package.json 中,以便 npm 和用户可以确定一切都是正确的。
问题是,package-B 使用预发布版本。我很清楚它使用了错误的 semver,但我还无法更改公司政策。同时会强制使用正确的版本控制。语义是这样的:
- 1.0.1-alpha.X -> 用于测试和前沿内容的不稳定版本
- 1.0.1-beta.X -> 对于每一个看似稳定的版本(如 rc)
- 1.0.2 -> 包准备好生产时。
所以基本上,当有另一个生产版本时,补丁版本会增加。
案例:由于版本控制,我需要包含除主要包之外的每个包以匹配对等依赖项,以及预发布版本。
需求基本上是 ^1.0.0 与所有内容,包括恰好具有 1 与对等依赖项一样重要的预发布
-
^1.0.0-> 不包括预发布版 -
^1.0.0 || >=1.0.0-beta.X-> 不包括例如1.0.1-beta.1 -
*-> 不包括预发布版本 -
^1.0.0 || >=1.X.X-beta.X-> 不起作用。
在 semver 上,有一个名为 --include-prerelease 的参数,我认为它可以满足我的需要,显然特定于 semver 命令。
NPM 上的react 包具有类似的版本控制系统,并正确使用了预发布版本。例如。它有16.0.0、16.0.0-alpha.1 和16.6.0-alpha.0。我基本上需要将所有这些都包含在一个范围内。
免责声明:发生重大更改时会更改次要版本。再一次,我很清楚这个版本控制不符合 semver 法规,不幸的是,建议它不能解决手头的问题。
【问题讨论】:
标签: npm peer-dependencies