Npm 在定义对等依赖时包括所有范围的预发布
Npm Including all range of pre-release when defining peer-dependency
我正在维护一个 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 命令。
react
NPM 上的包具有类似的版本控制系统,正确使用预发布。例如。它有 16.0.0
、16.0.0-alpha.1
和 16.6.0-alpha.0
。我基本上需要将所有这些都包含在一个范围内。
免责声明: 当发生重大变化时,次要版本会发生变化。再一次,我很清楚这个版本控制不符合 semver 规定,不幸的是,建议它不会解决手头的问题。
https://classic.yarnpkg.com/en/docs/dependency-versions#toc-pre-release-tags
If a comparator includes a version with a pre-release tag it will only match against versions that have the same major.minor.patch
version.
您只能包含特定版本的预发布。
>=1.0.0-beta
包括 1.0.0-beta.X
,但不包括 1.0.1-beta.X
您可以在 https://semver.npmjs.com/ 上试用 semver 预发布范围
查找包 @artsy/reaction
他们有一堆预发布
我正在维护一个 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 命令。
react
NPM 上的包具有类似的版本控制系统,正确使用预发布。例如。它有 16.0.0
、16.0.0-alpha.1
和 16.6.0-alpha.0
。我基本上需要将所有这些都包含在一个范围内。
免责声明: 当发生重大变化时,次要版本会发生变化。再一次,我很清楚这个版本控制不符合 semver 规定,不幸的是,建议它不会解决手头的问题。
https://classic.yarnpkg.com/en/docs/dependency-versions#toc-pre-release-tags
If a comparator includes a version with a pre-release tag it will only match against versions that have the same
major.minor.patch
version.
您只能包含特定版本的预发布。
>=1.0.0-beta
包括 1.0.0-beta.X
,但不包括 1.0.1-beta.X
您可以在 https://semver.npmjs.com/ 上试用 semver 预发布范围
查找包 @artsy/reaction
他们有一堆预发布