本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
自定义蓝图概念
以下是您在中使用自定义蓝图时应了解的一些概念和术语。 CodeCatalyst
蓝图项目
蓝图项目使您能够开发蓝图并将其发布到您的空间。源存储库是在项目创建过程中创建的,存储库的名称是您在输入项目资源详细信息时选择的名称。在蓝图创建过程中,如果您选择生成工作流程版本,则会在蓝图中使用蓝图生成器蓝图创建发布工作流程。该工作流程会自动发布您的最新版本。
太空蓝图
导航到空间的蓝图部分时,您可以查看和管理太空蓝图表中的所有蓝图。蓝图发布到您的空间后,它们将作为空间蓝图提供,供您从空间的蓝图目录中添加和删除。您还可以在空间的 “蓝图” 部分管理发布权限并删除蓝图。有关更多信息,请参阅 查看自定义蓝图的详细信息、版本和项目。
太空蓝图目录
您可以从空间的蓝图目录中查看所有添加的自定义蓝图。在这里,空间成员可以选择您的自定义蓝图来创建新项目。该目录与 CodeCatalyst 目录不同,后者已经为所有空间成员提供了可用的蓝图。有关更多信息,请参阅 使用 CodeCatalyst 蓝图创建综合项目。
合成
合成是生成 CodeCatalyst 项目包的过程,该包代表项目中的源代码、配置和资源。然后, CodeCatalyst 部署API操作使用该捆绑包将其部署到项目中。该过程可以在开发自定义蓝图时在本地运行,以模拟项目创建,而无需在中 CodeCatalyst创建项目。以下命令可用于执行合成:
yarn blueprint:synth # fast mode yarn blueprint:synth --cache # wizard emulation mode
蓝图首先在合并了该选项的情况下调用主blueprint.ts
类defaults.json
。将在该synth/synth.
文件夹下生成一个新的项目包。输出包括自定义蓝图根据您设置的选项生成的项目包,包括您可能已配置的部分选项。[options-name]
/proposed-bundle/
重新合成
Resynthesis 是使用不同的蓝图选项或现有项目的蓝图版本重新生成蓝图的过程。作为蓝图作者,您可以在自定义蓝图代码中定义自定义合并策略。您还可以在中定义所有权边界,.ownership-file
以指定允许在代码库的哪些部分更新蓝图。虽然自定义蓝图可以提出更新建议.ownership-file
,但使用自定义蓝图的项目开发人员可以确定其项目的所有权边界。您可以在本地运行 resynthesis,并在发布自定义蓝图之前进行测试和更新。使用以下命令执行重新合成:
yarn blueprint:resynth # fast mode yarn blueprint:resynth --cache # wizard emulation mode
蓝图首先在合并了该选项的情况下调用主blueprint.ts
类defaults.json
。将在该synth/resynth.
文件夹下生成一个新的项目包。输出包括自定义蓝图根据您设置的选项生成的项目包,包括您可能已配置的部分选项。[options-name]
/
以下内容是在合成和再合成过程之后创建的:
proposed-bundle-使用目标蓝图版本的新选项运行合成时的输出。
e@@ xisting-bundle-对你现有项目的模拟。如果此文件夹中没有任何内容,则生成该文件夹的输出与他相同
proposed-bundle
。ancestor-bundle-模拟使用先前版本、先前选项或组合运行蓝图时会生成的内容。如果此文件夹中没有任何内容,则会使用与相同的输出生成
proposed-bundle
。r@@ esolved-bund le-始终会重新生成捆绑包,并且默认为、和之间的三向合并。
proposed-bundle
existing-bundle
ancestor-bundle
此捆绑包提供了重新合成将在本地输出内容的模拟。
要了解有关蓝图输出包的更多信息,请参阅生成带有重新合成功能的文件。
部分期权
你可以在下方添加选项变体src/wizard-configuration/
,这些变体不必枚举整个Options
界面,而且这些选项会合并到defaults.json
文件顶部。这使您可以跨特定选项定制测试用例。
示例:
Options
接口:
{ language: "Python" | "Java" | "Typescript", repositoryName: string ... }
defaults.json
文件:
{ language: "Python", repositoryName: "Myrepo" ... }
其他配置测试:
-
#wizard-config-typescript-test.json { language: "Typescript", }
-
#wizard-config-java-test.json { language: "Java", }
Projen
Projen 是一个开源工具,自定义蓝图使用它来保持更新和一致性。蓝图以 Projen 包的形式出现,因为此框架使您能够构建、捆绑和发布项目,并且您可以使用该界面来管理项目的配置和设置。
即使蓝图已创建,您也可以使用 Projen 大规模更新蓝图。Projen 工具是生成项目包的蓝图合成背后的底层技术。Projen 拥有项目的配置,它不应该影响你作为蓝图作者。添加依赖关系后,您可以运行yarn projen
重新生成项目的配置,也可以更改projenrc.ts
文件中的选项。Projen 还是用于合成项目的自定义蓝图的底层生成工具。有关更多信息,请参阅 projen GitHub 页面