【问题标题】:Install dependencies with npm from private gitlab repo从私有 gitlab 存储库中使用 npm 安装依赖项
【发布时间】:2019-06-21 14:51:24
【问题描述】:

我正在尝试安装一个存在于我们私人仓库中的包。目标是与合作伙伴共享存储库,但我需要确保他们可以安装它。从理论上讲,它应该可以工作,但没有一个记录在案的解决方案对我有用

我已经尝试将包添加到 package.json 文件中

"dependencies": {
    "package_name": "git+https://<deploy-token-name>:<deploy-token>@gitlab.domain.com/group/repo.git"
}

然后使用 npm 安装,但似乎在部署令牌上失败,但很难说,因为日志不是很有帮助,然后我们的整个 gitlab 部署暂时停止#fun

29 error
29 error undefined
29 error exited with error code: 128

我也尝试过使用私有访问令牌

"package-name": "https://oauth2:<access-token>@gitlab.domain.com/group/repo.git"

这导致了一个我可以理解的实际错误,除了错误是说存储库中没有 package.json,但肯定有

npm ERR! package.json Non-registry package missing package.json: package-name@https://oauth2:<access-token>@gitlab.domain.com/group/repo.git.
npm ERR! package.json npm can't find a package.json file in your current directory.

我已尝试使用 ssh(使用适用于提交等的 ssh 密钥设置)

git+ssh://git@my-domain.com:my-project/my-repo#my-branch

这会导致错误

npm ERR! premature close

我已经阅读了十几个相关的问题和文章,但没有什么对我有用

【问题讨论】:

  • 你能解决这个问题吗?

标签: reactjs git npm


【解决方案1】:

如果你想安装私有 npm 包,你应该使用 Scopes。

您可以在存储库的 .npmrc 文件中定义范围。

应用程序仓库中的示例 .npmrc:

@scopeName:registry=http://private-npm-registry/
always-auth=true

所以 npm 可以处理如下依赖: @scopeName/yourprivateModule@version

访问此 repo 的令牌不应包含在您的存储库中,应在您的主文件夹 .npmrc 中配置。 Npm 将首先在当前文件夹中查找 .npmrc,然后在您的主文件夹中查找。配置的选项将被合并。

但这种方法只有在您将包发布到私有 npm 注册表时才适合您。 https://docs.gitlab.com/ee/user/project/packages/npm_registry.html#authenticating-with-an-oauth-token

总结一下:

  • 在存储库的 .npmrc 文件中配置范围
  • 在您的环境用户的 .npmrc 文件中配置访问令牌
  • 将作用域依赖添加到你的 package.json

    例如

npm i @scopeName/yourprivateModule@version

【讨论】:

  • 谢谢,我没有将包发布到私有 npm 注册表,而是尝试从私有 gitlab 存储库安装
  • 是的,你已经写过了。我只是想向您指出一个更简单的解决方案。也许错误信息有点不清楚。我可以想象你的依赖仓库没有 package.json。?我会先检查一下。
  • 依赖 repo 确实有一个 package.json - 但由于我在尝试使用访问令牌安装时看到的错误,它可能由于某种原因无法识别
  • 我不确定如何确保 package.json 文件存在但 npm 无法识别时可见
  • 另外,发布私有 npm 包需要花钱,而这~应该~根据文档工作
【解决方案2】:

我遇到了同样的问题,我设法解决了它。 我要安装的 gitlab 存储库没有 package.json 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-06
    • 2021-12-27
    • 2023-01-26
    • 2019-02-20
    • 2016-03-30
    • 2017-09-28
    • 1970-01-01
    • 2015-04-28
    相关资源
    最近更新 更多