TL;DR:
我的项目依赖于"dep": "snapshot"
其中“快照”是一个标签。跑步npm install
不获取新版本的“dep”。
完整故事:
所以最近我开始了一个 JS 项目,并且......长话短说,我通过本地安装的 Nexus 设置了自己的私人存储库。
让我们称我的项目为myProj1
.
我在我的目录中添加了 Nexus 注册表.npmrc
像这样:
registry=http://nexus:8081/nexus/content/groups/npm-all/
一切都很好,我在发布任何生产就绪代码之前尝试发布快照版本。
这包括跑步npm-snapshot X
其中 X 是我的快照编号。 (它基本上是一个改变package.json
版本标签类似于1.0.0-SNAPSHOT.24
(如果 X = 24)
然后我跑
npm publish --tag=snapshot --registry=http://nexus:8081/nexus/content/npm-internal
它将代码推送到我的 Nexus,一切看起来都很好。我的 Nexus 注册表中的标签“快照”已更新为最近发布的版本。 (1.0.0-快照.24)
然后我有另一个项目,它依赖于上面的模块package.json
指定如下:
"dependencies": {
"myProj1": "snapshot"
}
所以我跑npm install
在项目根目录中,你瞧,依赖项已完美下载,一切都很棒!
现在我的问题来了:
然后我决定更新一些东西myProj1
,让我使用上面相同的命令发布另一个快照版本。 (导致新发布的工件被版本控制1.0.0-SNAPSHOT.25
)我的 Nexus 非常棒,它像它应该的那样发布了新的依赖项,还将 dist 标签“快照”更新为新构建的版本。
HOWEVER,当我跑步时npm install
从我的其他项目中,相信我应该获得更新版本的myProj1
, 什么都没发生。它不会获取较新的快照版本。为什么?
我是否误解了对 dist 标签的依赖?我可以用其他方式做到这一点吗?
Regards