Nexus Sonatype NPM 存储库不支持 semver 版本控制



我们使用Nexus作为我们的NPM软件包存储库(以及其他东西(。 在我们的package.json文件中,我们使用semver语法 https://docs.npmjs.com/misc/semver 但它被忽略了。有谁知道我们是否有配置问题?或者也许这不是对 NPM 而不是 Nexus 的期望?

在开发过程中可能发生在我们身上的场景示例:

组件 A – package.json:

"name": "ComponentA",
"version": "1.1.2"

组件 B – package.json:

"name": "ComponentB",
"version": "3.0.0"
"dependencies": 
"ComponentA": "^1.1.0"

Person1 构建并发布 ComponentA 的 1.1.2 版到 nexus。

一个。 组件 npm 运行构建 b. 组件 npm 发布到结点 c. npm 视图 组件 A 最新:1.1.2

现在,Person2 构建 7 将组件 A 的 1.1.1 版本发布到。

一个。 组件 npm 运行构建 b. 组件 npm 发布到结点 c. npm view 组件 A 最新:1.1.1 Nexus 将组件的最新版本视为最后一个发布的版本,尽管知道 1.1.2 也已发布。

现在,当 ComponentB 安装其依赖项时,我希望获得 ComponentA 的 1.1.2 版,但实际上我得到的是 1.1.1 版

d. 组件B npm 安装

我认为这就是 npm 的工作方式。 ^1.1.0 表示使用最新版本的 1.1.x - 在这种情况下,它将是 1.1.1,因为它在按照您完成的顺序上传时标记为最新。

最新更新