我们将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 build&将ComponentA的1.1.2版发布到nexus。
一个。 ComponentA npm运行构建 湾ComponentA npm发布到nexus C。 npm查看ComponentA最新:1.1.2
现在,Person2构建7将ComponentA的1.1.1版本发布到。
一个。 ComponentA npm运行构建 湾ComponentA npm发布到nexus C。 npm查看ComponentA最新版本:1.1.1 Nexus将组件的最新版本视为已发布的最新版本,尽管知道1.1.2也已发布。
现在,当ComponentB安装其依赖项时,我希望得到ComponentA的1.1.2版,但实际上我得到版本1.1.1 。
d。以componentB npm install
答案 0 :(得分:0)
我认为这就是npm的工作原理。 ^ 1.1.0表示使用最新版本的1.1.x - 在这种情况下,它将是1.1.1,因为它按照您已完成的顺序上传时标记为最新版本。