Npm 在定义对等依赖时包括所有范围的预发布

问题描述

我正在维护一个 NPM 包(可以说它是 package-A),它依赖于另一个 NPM 包(package-B)来运行。因此,我需要将该包作为对等依赖项添加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.016.0.0-alpha.116.6.0-alpha.0。我基本上需要将所有这些都包含在一个范围内。

免责声明:发生重大更改时会更改次要版本。再说一次,我很清楚这种版本控制不符合 semver 规定,不幸的是,向它提出建议并不能解决手头的问题。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)