我有两个 npm 包,它们是在团体组织下托管在 gitlab.com 上的私有存储库。我的第一个包运行良好,并由同一组织的用户更新和下载。
要安装私有范围的包,文档说:
# Set URL for your scoped packages.
# For example package with name `@foo/bar` will use this URL for download
npm config set @foo:registry https://gitlab.example.com/api/v4/projects/<your_project_id>/packages/npm/
Run Code Online (Sandbox Code Playgroud)
所以我的.npmrc看起来像
@mygroup:registry=https://gitlab.com/api/v4/projects/<id-project-1>/packages/npm/
//gitlab.com/api/v4/projects/<id-project-1>/packages/npm/:_authToken=<token>
//gitlab.com/api/v4/projects/<id-project-2>/packages/npm/:_authToken=<token>
//gitlab.com/api/v4/packages/npm/:_authToken=<token>
Run Code Online (Sandbox Code Playgroud)
显然,第一个包一切正常,但第二个包则不然。
我不明白的是为什么作用域包应该引用唯一的项目 url?
因此,我无法安装这两个包:我的作用域包的 url 仅对其中一个有效。
我查看了 api 端点以返回我的组包列表,我发现了这个: https: //docs.gitlab.com/ee/api/packages.html#within-a-group
所以我更新了我.npmrc的
@mygroup:registry=https://gitlab.com/api/v4/groups/mygroup/packages/npm/
//gitlab.com/api/v4/projects/<id-project-1>/packages/npm/:_authToken=<token>
//gitlab.com/api/v4/projects/<id-project-2>/packages/npm/:_authToken=<token>
//gitlab.com/api/v4/packages/npm/:_authToken=<token>
Run Code Online (Sandbox Code Playgroud)
但这不起作用。在group/group-id/packages路上我只得到 gitlab 信息,但没有任何 npm 友好格式的信息。
如何安装同一组下托管的多个私有范围的 npm 包?
实例级端点似乎可以回答您的情况instance-level-npm-endpoint
使用:
npm config set @mygroup:registry https://gitlab.example.com/api/v4/packages/npm/
npm config set -- '//gitlab.example.com/api/v4/packages/npm/:_authToken' "<your_token>"
Run Code Online (Sandbox Code Playgroud)
您应该能够发布@mygroup/project1&@mygroup/project2
| 归档时间: |
|
| 查看次数: |
2039 次 |
| 最近记录: |