Help us learn about your current experience with the documentation. Take the survey.
单体仓库包管理工作流程
- Tier: Free, Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
使用单体仓库项目作为包注册表,将包发布到多个项目中。
将包发布到项目及其子项目
要将包发布到项目及其子项目中,您必须为每个包添加配置文件。要了解如何为特定包管理器配置包,请参阅支持的包管理器。
下面的示例向您展示如何使用 npm 为项目及其子项目发布包。
先决条件:
- 一个 个人访问令牌,作用域设置为
api - 一个测试项目
在此示例中,MyProject 是父项目。它在 components 目录中包含一个名为 ChildProject 的子项目:
MyProject/
|- src/
| |- components/
| |- ChildProject/
|- package.json为 MyProject 发布包:
-
进入
MyProject目录。 -
运行
npm init初始化项目。确保包名称遵循命名约定。 -
创建一个
.npmrc文件。包含注册表 URL 和项目端点。例如://gitlab.example.com/api/v4/projects/<project_id>/packages/npm/:_authToken="${NPM_TOKEN}" @scope:registry=https://gitlab.example.com/api/v4/projects/<project_id>/packages/npm/ -
从命令行发布您的包。将
<token>替换为您的个人访问令牌:NPM_TOKEN=<token> npm publish
切勿将 GitLab 令牌(或任何令牌)直接硬编码在 .npmrc 文件或任何其他可以提交到仓库的文件中。
您应该会在项目的包注册表中看到已发布的 MyProject 包。
要在 ChildProject 中发布包,请遵循相同的步骤。.npmrc 文件的内容可以与您在 MyProject 中添加的文件相同。
发布 ChildProject 的包后,您应该会在项目的包注册表中看到该包。
将包发布到其他项目
包与 GitLab 上的项目相关联。但是,包与该项目中的代码没有关联。
例如,在为 npm 或 Maven 配置包时,project_id 设置了包发布的注册表 URL。
例如:
- npm:
https://gitlab.example.com/api/v4/projects/<project_id>/packages/npm/ - maven:
https://gitlab.example.com/api/v4/projects/<project_id>/packages/maven/
如果您将注册表 URL 中的 project_id 更改为另一个项目,您的包将发布到该项目。
通过更改 project_id,您可以将多个包与代码分开发布到一个项目中。有关更多信息,请参阅将所有包存储在一个 GitLab 项目中。