我已经升级到最新的稳定后node和npm,我试过npm install moment --save.它package.json使用^前缀保存条目.以前,它是一个~前缀.
npm?~和之间有什么区别^?长话短说:
我的项目依赖于"dep": "snapshot"“快照”是标签的位置。运行npm install不会获取新版本的“dep”。
完整故事:
所以最近我开始了一个 JS 项目,并且......长话短说,我通过本地安装的 Nexus 设置了自己的私人存储库。让我们称我的项目为myProj1。
我.npmrc像这样添加了 Nexus 注册表:
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"
}
Run Code Online (Sandbox Code Playgroud)
所以我npm install在项目根目录中运行,你瞧,依赖项已完美下载,一切都很棒!
现在我的问题来了:
然后我决定更新 中的一些内容myProj1,使我使用上面相同的命令发布另一个快照版本。(导致新发布的工件被版本控制1.0.0-SNAPSHOT.25)我的 Nexus 非常棒,并且像它应该的那样发布了新的依赖项,还将 dist 标签“快照”更新为新构建的版本。
然而,当我从其他项目运行时npm install,相信我应该获得更新版本的myProj1,什么也没有发生。它不会获取较新的快照版本。为什么?
我是否误解了对 dist 标签的依赖?我可以用其他方式做到这一点吗?
问候