npm的git仓库不更新版本

我有一个git仓库,我试图把它设置为我的项目中的一个依赖项。 使用NPM,我的package.json如下所示:

"devDependencies": { "grunt": "~0.4.0", "grunt-contrib-connect": "~0.2.0", "grunt-contrib-watch": "~0.3.1", "custom": "git://github.com/myGitHubRepo/repo.js.git#b7d53a0cfbe496ad89bde6f22324219d098dedb3", "grunt-contrib-copy": "~0.4.0" } 

在第一个

 npm install 

它安装一切,取回没有问题的回购。 但是,如果我改变这个提交哈希让我们说

 "custom": "git://github.com/myGitHubRepo/repo.js.git#d6da3a0...", // a different one 

它不更新! 任何人都可以指出我怎么能得到这种行为? 我只是想分享这个代码,并能够在某些时候改变这个版本,npm会自动更新这个。

       

网上收集的解决方案 "npm的git仓库不更新版本"

好吧,这是如何做到的。

我也困惑。

所以我有一个私人的npm模块git@github.com:myModule / MySweetModule.git我刚刚发布了最新的标签版本。 不幸的是,我不明白这是如何工作,但它的工作主人。 SOOO你的主分支可以是你的集成分支,你有舞台分支build立下一个版本。 完成版本后,只需将其合并到主版本中,然后增加您的私有回购版(因此您的私有回购版现在从1.0.0升级到1.0.1)。 如果您调用npm install ,它将更新您的回购,如果主人的package.json版本大于当前工作回购。 它将始终采取最新的回购。

这似乎很糟糕

我同意。 所以让我们做一个更好的方法! 如果您为您的私人回购tags发布tags ,则可以通过"custom": "git+ssh://git@github.com:usr/proj.git#TAG_NAME"引用它们"custom": "git+ssh://git@github.com:usr/proj.git#TAG_NAME"

所以我有一个标签叫0.1.0 ,然后我会有像package.json版本的URL。 "custom": "git+ssh://git@github.com:usr/proj.git#0.1.0"

我相信这是你的答案最好的方法。 但我不是一个gitanista

警告

如果您尝试返回一个版本,它似乎不起作用。 所以从版本0.2.20.2.1它不会更新你的项目。 确保你做npm remove myProj然后npm install如果你回滚一个版本。

这已经在npm中修复了,请升级到npm> = 1.3.10

示例用法

"dependencies": { "thing": "git://github.com/myGitHubRepo/repo.js.git#56477cb", }

一天之后

"dependencies": { "thing": "git://github.com/myGitHubRepo/repo.js.git#67f90b5", }

然后npm install再次npm install ,你会得到新的参考!

如果你的“myGitHubRepo / repo.js”是一个私有包,你应该设置"private": true ,以确保它不会意外地发布到npmregistry