將存放庫和原始程式碼元件新增至藍圖 - Amazon CodeCatalyst

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將存放庫和原始程式碼元件新增至藍圖

Amazon 使用存儲庫 CodeCatalyst 來存儲代碼。存儲庫需要一個名稱作為輸入。大多數組件都存儲在存儲庫中,例如源代碼文件,工作流程以及其他組件,例如託管開發環境(MDE)。來源儲存庫元件也會匯出用於管理檔案和靜態資產的元件。儲存庫有名稱限制。如需詳細資訊,請參閱 使用原始碼儲存庫儲存和協作程式碼 CodeCatalyst

const repository = new SourceRepository(this, { title: 'my-new-repository-title', });

若要匯入 Amazon CodeCatalyst 藍圖儲存庫和原始程式碼元件

在您的blueprint.ts檔案中,新增下列內容:

import {...} from '@caws-blueprint-component/caws-source-repositories'

新增檔案

您可以使用SourceFile構造將文本文件寫入存儲庫。此作業是最常見的使用案例之一,會取得儲存庫、檔案路徑和文字內容。如果儲存庫中不存在檔案路徑,則元件會建立所有必要的資料夾。

new SourceFile(repository, `path/to/my/file/in/repo/file.txt`, 'my file contents');
注意

如果您將兩個檔案寫入同一儲存庫中的相同位置,則最新的實作會覆寫前一個檔案。您可以使用此功能來分層產生的程式碼,而且對於延伸自訂藍圖可能產生的程式碼而言,它特別有用。

新增一般檔案

您可以將任意位元寫入儲存庫。您可以從緩衝區讀取並使用File建構。

new File(repository, `path/to/my/file/in/repo/file.img`, new Buffer(...)); new File(repository, `path/to/my/file/in/repo/new-img.img`, new StaticAsset('path/to/image.png').content());

複製檔案

您可以通過複製和粘貼初學者代碼開始使用生成的代碼,然後在該基礎上生成更多代碼。將代碼放在static-assets目錄中,然後使用StaticAsset構造定位該代碼。在這種情況下,路徑始終從目錄的根目static-assets錄開始。

const starterCode = new StaticAsset('path/to/file/file.txt') const starterCodeText = new StaticAsset('path/to/file/file.txt').toString() const starterCodeRawContent = new StaticAsset('path/to/image/hello.png').content() const starterCodePath = new StaticAsset('path/to/image/hello.png').path() // starterCodePath is equal to 'path/to/image/hello.png'

的子類別StaticAssetSubstitutionAsset。子類的功能完全相同,但是您可以在文件上運行鬍子替換。它對於執行 copy-and-replace 樣式生成很有用。

靜態資產替換使用鬍子模板引擎來呈現植入生成源存儲庫的靜態文件。鬍子範本化規則會在轉譯期間套用,這表示所有值預設都是 HTML 編碼。要呈現未轉義的 HTML,請使用三重鬍子語法。{{{name}}}如需詳細資訊,請參閱鬍子範本規則。

注意

對不可文字解譯的檔案執行替代可能會產生錯誤。

const starterCodeText = new SubstitionAsset('path/to/file/file.txt').subsitite({ 'my_variable': 'subbed value1', 'another_variable': 'subbed value2' })

定位多個檔案

靜態資產通過 on 的靜態函數StaticAsset和調用的子類來支持 glob 定位findAll(...),該函數返回預先加載了路徑,內容等的靜態資產列表。您可以使用File建構來鏈結清單,以便在static-assets目錄中複製和貼上內容。

new File(repository, `path/to/my/file/in/repo/file.img`, new Buffer(...)); new File(repository, `path/to/my/file/in/repo/new-img.img`, new StaticAsset('path/to/image.png').content());

創建一個新的存儲庫和添加文件

您可以使用儲存庫元件,在產生的專案中建立新的存放庫。然後,您可以將檔案或工作流程新增至建立的存放庫。

import { SourceRepository } from '@amazon-codecatalyst/codecatalyst-source-repositories'; ... const repository = new SourceRepository(this, { title: 'myRepo' });

下列範例顯示如何將檔案和工作流程新增至現有存放庫:

import { SourceFile } from '@amazon-codecatalyst/codecatalyst-source-repositories'; import { Workflow } from '@amazon-codecatalyst/codecatalyst-workflows'; ... new SourceFile(repository, 'README.md', 'This is the content of my readme'); new Workflow(this, repository, {/**...workflowDefinition...**/});

結合這兩段程式碼會產生一個名為myRepo來源檔案的單一儲存庫,README.md並在根目錄中命名為 CodeCatalyst工作流程。