【问题标题】:NPM specify package dependency without version numberNPM 指定没有版本号的包依赖
【发布时间】:2016-01-09 15:09:36
【问题描述】:

我有两个存储库 X 和 Y。Y 在其 package.json 中引用 X 以使用某些模块。 X 和 Y 有 master 分支,并且都部署到公共 npm-registery(我们称之为 2.0.0 版)。所以 repo Y 在其 package.json 中引用了 X 2.0.0。一切都很好。

现在,问题--

我在两个 repos 中都创建了一个新分支(我们称它们为 bX 和 bY)。这 2 个分支尚未准备好合并到其相应分支的主节点。因此我无法发布仅包含 bX 更改的 X 的新版本。或者我可以吗?

但我想将我在 bX 中所做的更改用于 bY。

当我四处搜索时,我发现我可以像这样在 Y 的 package.json 中提供 repo X 的 url -- https://github.com/url-to-repo/X.git#bX 并且当我使用它构建时它在我的本地系统中运行良好npm。但是当我将它与 jenkins build 一起用于测试环境时,它失败并出现以下错误--

请求的 URL 返回错误:访问时出现 403 https://github.com/url-to-repo/X.git/info/refs

而且这个问题似乎与以下有关--

请升级您的 git 客户端。 GitHub.com 不再支持 git over 哑-http: https://github.com/blog/809-git-dumb-http-transport-to-be-turned-off-in-90-days

我登录到 Jenkins 服务器并且 git 版本是 1.7.2.5(在 GitHub 中,转储 http 支持已被撤销,但这不会影响您,除非您运行 v1.6.6 之前的 git 版本并使用http 远程 URL -- 来自 github 文档)

所以我不明白这里出了什么问题。以前有人遇到过这个问题吗?

【问题讨论】:

  • 你可以使用 ssh 网址吗?
  • 而不是 http 网址?我没试过。让我现在试试。
  • @IonicăBizău 是的,它奏效了。非常感谢。你能把这个作为答案让我接受吗?另外,这是问题的实际解决方案还是变通方法?
  • 太棒了!我发布了我的答案。作为附加信息,您能否告诉我 GitHub 存储库是否是私有的?也许您因为身份验证而得到 403。无论如何,我一直很喜欢使用 ssh 而不是 https 的 git。 :)

标签: git github jenkins npm package.json


【解决方案1】:

解决方案可能是使用 SSH 网址而不是 https 网址。

所以,有

https://github.com/user/repo.git

你会有

git@github.com:user/repo.git

如果您没有在您的机器上设置 SSH 密钥,here is how to do it

【讨论】:

    猜你喜欢
    • 2017-09-13
    • 2017-08-06
    • 2016-01-05
    • 2016-03-10
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    • 2015-06-11
    • 1970-01-01
    相关资源
    最近更新 更多