21

我有一个 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会自动更新它。

4

3 回答 3

11

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

我也很困惑。

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

好像很烂

我同意。所以让我们做一个更好的方法!如果您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"

我相信这是您回答的最佳方法。但我不是吉塔尼斯达人

警告

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

于 2013-06-19T15:13:35.463 回答
2

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

并自动执行此操作,我将此安装后脚本添加到我的 package.json

"scripts": {
 ...
 "postinstall": "npm update custom"
}
于 2021-07-19T09:21:24.720 回答
0

正如@Nestoro所建议的,手动更新包也对我有用:

npm update
npm install <your package name>
于 2021-09-28T06:21:49.923 回答