【问题标题】:How do you install a repo by branch name in a github enterprise repo?如何在 github 企业存储库中按分支名称安装存储库?
【发布时间】:2019-09-15 02:46:58
【问题描述】:

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

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 注册表,我想知道这是否是权限问题。

【问题讨论】:

    标签: npm branch git-branch


    【解决方案1】:

    npm/npm issue 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 格式。
    关于分支as seen here,您的语法是正确的。

    还有:

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

    另见npm/hosted-git-info PR 30

    【讨论】:

    • 嗯...由于某种原因,安装时没有 lib 或 dist 目录。 node_modules 也包括在内。对于任何其他安装,不包括 node_modules,并且有 lib 和 dist 目录...您知道如何解决这个问题吗?
    • @zero_cool 不在我的脑海中。在一个单独的问题中探讨该特定情况会很有趣,突出该不完整模块与其他正确安装的模块之间的差异。
    • 我想通了 :) 您将“准备”脚本添加到处理构建的 package.json 中。如果存在,它看起来准备在 npm i 上运行。我们使用 builder 进行构建,因此对我有用的脚本就是在本地工作的脚本。我想在本地对您有用的任何东西都可以在该脚本中使用。
    猜你喜欢
    • 2015-07-09
    • 1970-01-01
    • 2020-09-19
    • 1970-01-01
    • 2022-11-20
    • 2020-10-19
    • 2021-04-24
    • 1970-01-01
    • 2019-06-17
    相关资源
    最近更新 更多