首页 > 解决方案 > 如何在 github 企业存储库中按分支名称安装存储库?

问题描述

我想将存储库安装到父存储库并按分支名称指定。我尝试了以下方法:

npm install username/repo#branchName --save
npm install username/repo@branchName --save
npm install username/repo#tag --save
npm install username/repo@tag --save

我收到一条错误消息:

Could not install from {theRepoWithBranch} as it does not contain a package.json file.

repo 肯定包含一个 package.json 文件。鉴于我正在使用企业 npm 注册表,我想知道这是否是权限问题。

标签: npmbranchgit-branch

解决方案


npm/npm 问题 19788确实提到:

目前,npm 不支持从托管在私有域名上的 git 服务安装模块
这包括自定义域上的 Github for Enterprise 以及 gitlab、gitea、gogs、bitbucket 和许多其他实例,基本上任何托管在自定义域名上的东西。

随着评论:

因此,显然您直接通过 http(s):// URL 引用安装,但仅供参考,我们的 GitLab Enterprise 实例允许我们使用稍微不同的格式进行安装。
我们启用了 2FA,因此需要使用 SSH。
从文档。

npm install <git-host>:<git-user>/<repo-name>
npm install <git repo url>

我们能够像这样实际安装我们的存储库:

npm install git+ssh://git@gitlab.mydomain.com:user/repo.git

所以这更像是一种结合了权限问题的 URL 格式。
关于分支,如此处所示,您的语法是正确的。

和:

如果我在 HTTPS URL 上添加 git+ 它可以工作(我运行接受基本身份验证的 gitea)

另见npm/hosted-git-infoPR 30


推荐阅读