npm git存储库没有更新版本

时间:2013-03-12 16:49:51

标签: javascript node.js configuration npm build-system

我有一个git repo,我试图将它设置为我项目中的依赖项。 使用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会自动更新此代码。

3 个答案:

答案 0 :(得分:8)

好的,这就是它的完成方式。

我也很困惑。

所以我在git@github.com上有一个私人npm模块:myModule / MySweetModule.git 我刚刚发布了最新的标记版本。不幸的是我无法弄清楚它是如何工作的,但它可以解决你的主人问题。 SOOO你的主分支可以是你的集成分支,你有阶段分支来构建下一个版本。完成版本后,只需将其合并到master并增加私有repo的版本(因此您的私有repo现在从1.0.0升级到1.0.1)。如果您致电npm install,如果主人的package.json版本大于当前工作回购,它将更新您的仓库。它将始终采用最新的回购。

这似乎很糟糕

我同意。所以,让我们做一个更好的方式!如果您tags用于私人回购发布,则可以"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

答案 1 :(得分:3)

这是fixed在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,你会得到新的参考!

如果您的“myGitHubRepo / repo.js”是private个套餐,那么您应该设置"private": true以确保它不会accidentally published to npm registry

答案 2 :(得分:0)

手动更新那个特定的包对我有用。

为了自动做到这一点,我将此安装后脚本添加到我的 package.json

"scripts": {
 ...
 "postinstall": "npm update custom"
}