

亚马逊 CodeCatalyst 不再向新买家开放。现有客户可以继续正常使用该服务。有关更多信息，请参阅 [如何从中迁移 CodeCatalyst](migration.md)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将自定义蓝图发布到空间
<a name="publish-bp"></a>

您必须先将自定义蓝图发布到您的空间，之后才能将该自定义蓝图添加到空间的蓝图目录中。您也可以在发布前在 CodeCatalyst 控制台中查看蓝图。您可以发布蓝图的预览版或正常版本。

**重要**  
如果要使用来自外部来源的蓝图包，请考虑使用这些包可能带来的风险。您对添加到空间中的自定义蓝图以及这些蓝图生成的代码负责。

**重要**  
要将自定义蓝图发布到 CodeCatalyst 空间，您必须使用在该空间中具有**空间管理员**或**高级用户**角色的账户进行登录。

**Topics**
+ [查看和发布自定义蓝图的预览版](#publish-preview-bp)
+ [查看和发布自定义蓝图的正常版本](#publish-normal-bp)
+ [在指定的空间和项目中发布和添加自定义蓝图](#publish-preview-existing-project-bp)

## 查看和发布自定义蓝图的预览版
<a name="publish-preview-bp"></a>

如果您想将自定义蓝图的预览版添加到空间的蓝图目录中，则可以将预览版发布到您的空间。这样就可以在将非预览版本添加到目录之前，以用户身份查看蓝图。使用预览版可以在不占用实际版本的情况下进行发布。例如，如果您正在处理 `0.0.1` 版本，则可以发布和添加预览版本，这样就可以发布第二个版本的新更新并将其添加为 `0.0.2`。

进行更改后，可以通过运行 `package.json` 文件来重新构建自定义蓝图的程序包，并预览所做的更改。

**查看和发布自定义蓝图的预览版**

1. 恢复您的开发环境。有关更多信息，请参阅[恢复开发环境](devenvironment-resume.md)。

1. 在您的开发环境中打开工作终端。

1. （可选）在正常运行的终端中，如果您尚未安装项目所需的依赖项，请安装这些依赖项。使用以下命令：

   ```
   yarn
   ```

1. （可选）如果您对 `.projenrc.ts` 文件进行了更改，请在构建和预览蓝图之前重新生成项目的配置。使用以下命令：

   ```
   yarn projen
   ```

1. 使用以下命令重新构建和预览您的自定义蓝图。使用以下命令：

   ```
   yarn blueprint:preview
   ```

   导航到提供的 `See this blueprint at:` 链接以预览您的自定义蓝图。根据您的配置，检查用户界面（包括文本）是否按预期显示。如果要更改自定义蓝图，可以编辑 `blueprint.ts` 文件，重新同步蓝图，然后再次发布预览版本。有关更多信息，请参阅[重新合成](custom-bp-concepts.md#resynthesis-concept)。

1. （可选）您可以发布自定义蓝图的预览版，随后可将其添加到空间的蓝图目录中。导航到 `Enable version [preview version number] at:` 链接以将预览版发布到您的空间。

您无需在 CodeCatalyst 中创建项目即可模拟项目创建过程。要合成项目，请使用以下命令：

```
yarn blueprint:synth
```

这将在 `synth/synth.[options-name]/proposed-bundle/` 文件夹中生成蓝图。有关更多信息，请参阅 [合成](custom-bp-concepts.md#synthesis-concept)。

如果您要更新自定义蓝图，请改用以下命令来重新合成您的项目：

```
yarn blueprint:resynth
```

这将在 `synth/synth.[options-name]/proposed-bundle/` 文件夹中生成蓝图。有关更多信息，请参阅 [重新合成](custom-bp-concepts.md#resynthesis-concept)。

发布预览版后，您可以添加蓝图，以便空间成员能够使用它来创建新项目或将它添加到现有项目。有关更多信息，请参阅 [将自定义蓝图添加到空间蓝图目录中](add-bp.md)。

## 查看和发布自定义蓝图的正常版本
<a name="publish-normal-bp"></a>

开发和预览自定义蓝图后，您可以查看和发布要添加到空间的蓝图目录的新版本。创建项目时生成的发布工作流将自动发布已推送的更改。如果您在创建蓝图时禁用了工作流生成，则您的蓝图不会自动添加到空间的蓝图目录中。运行 `yarn` 命令后，您仍可将自定义蓝图发布到您的空间。

**查看和发布自定义蓝图**

1. 恢复您的开发环境。有关更多信息，请参阅[恢复开发环境](devenvironment-resume.md)。

1. 在您的开发环境中打开工作终端。

1. 
   + 如果您在创建蓝图时选择退出发布工作流生成，请使用以下命令：

     ```
     yarn blueprint:release
     ```

     您仍可导航到提供的 `See this blueprint at:` 链接以预览您的自定义蓝图。

     发布自定义蓝图的更新版本，随后可将其添加到空间的蓝图目录中。导航到 `Enable version [release version number] at:` 链接以将最新版本发布到您的空间。
   + 如果您在创建蓝图时选择了发布工作流，则会在推送更改时自动发布最新的蓝图版本。使用以下命令：

     ```
     git add .
     ```

     ```
     git commit -m "commit message"
     ```

     ```
     git push
     ```

发布正常版本后，您可以添加蓝图，以便空间成员能够使用它来创建新项目或将它添加到现有项目。有关更多信息，请参阅 [将自定义蓝图添加到空间蓝图目录中](add-bp.md)。

## 在指定的空间和项目中发布和添加自定义蓝图
<a name="publish-preview-existing-project-bp"></a>

默认情况下，`blueprint:preview` 和 `blueprint:release` 命令会发布到已在其中创建蓝图的 CodeCatalyst 空间。如果您有多个企业空间，也可以在这些空间中预览和发布相同的蓝图。您也可以向其他空间的现有项目添加蓝图。

**在指定的空间中发布或添加自定义蓝图**

1. 恢复您的开发环境。有关更多信息，请参阅 [恢复开发环境](devenvironment-resume.md)。

1. 在您的开发环境中打开工作终端。

1. （可选）如果您尚未安装项目所需的依赖项，请安装这些依赖项。使用以下命令：

   ```
   yarn
   ```

1. 使用 `--space` 标签将预览版或正常版本发布到指定空间。例如：
   + 

     ```
     yarn blueprint:preview --space my-awesome-space # publishes under a "preview" version tag to 'my-awesome-space'
     ```

     输出示例：

     ```
     Enable version 0.0.1-preview.0 at: https://codecatalyst.aws/spaces/my-awesome-space/blueprints
     Blueprint applied to [NEW]: https://codecatalyst.aws/spaces/my-awesome-space/blueprints/%40amazon-codecatalyst%2Fmyspace.my-blueprint/publishers/1524817d-a69b-4abe-89a0-0e4a9a6c53b2/versions/0.0.1-preview.0/projects/create
     ```
   + 

     ```
     yarn blueprint:release --space my-awesome-space # publishes normal version to 'my-awesome-space'
     ```

     输出示例：

     ```
     Enable version 0.0.1 at: https://codecatalyst.aws/spaces/my-awesome-space/blueprints
     Blueprint applied to [NEW]: https://codecatalyst.aws/spaces/my-awesome-space/blueprints/%40amazon-codecatalyst%2Fmyspace.my-blueprint/publishers/1524817d-a69b-4abe-89a0-0e4a9a6c53b2/versions/0.0.1/projects/create
     ```

   使用 `--project` 将自定义蓝图的预览版添加到指定空间中的现有项目。例如：

   ```
   yarn blueprint:preview --space my-awesome-space --project my-project # previews blueprint application to an existing project
   ```

   输出示例：

   ```
   Enable version 0.0.1-preview.1 at: https://codecatalyst.aws/spaces/my-awesome-space/blueprints
   Blueprint applied to [my-project]: https://codecatalyst.aws/spaces/my-awesome-space/projects/my-project/blueprints/%40amazon-codecatalyst%2FmySpace.my-blueprint/publishers/1524817d-a69b-4abe-89a0-0e4a9a6c53b2/versions/0.0.1-preview.1/add
   ```