

Amazon CodeCatalyst は新規のお客様には提供されなくなりました。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、「[CodeCatalyst から移行する方法](migration.md)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 依存関係、不一致、ツールの処理
<a name="dependencies-tooling-bp"></a>

依存関係管理が正しくないと、カスタムブループリントを使用しているユーザーに対してビルドの失敗やランタイムの問題が発生する可能性があります。古いツールとコンポーネントを使用すると、ブループリントユーザーが最新の機能やバグ修正にアクセスできなくなる可能性があります。依存関係の管理、依存関係の不一致の処理、ツールとコンポーネントのアップグレードを行い、すべての依存関係が同じコンポーネントバージョンに依存し、コンポーネントが同期しているかどうかを確認できます。

**Topics**
+ [依存関係の追加](#add-dependencies)
+ [依存関係タイプの不一致の処理](#handle-dependency-mismatches)
+ [yarn と npm の使用](#use-yarn-npm)
+ [ツールとコンポーネントのアップグレード](#upgrade-tooling-components)

## 依存関係の追加
<a name="add-dependencies"></a>

ブループリント作成者として、`@amazon-codecatalyst/blueprint-component.environments` などのパッケージをブループリントに追加する必要がある場合があります。そのパッケージで `projen.ts` ファイルを更新し、[Projen](https://github.com/projen/projen) でプロジェクトの設定を再生成する必要があります。Projen は、各ブループリントコードベースのプロジェクトモデルとして機能します。これにより、モデルの設定ファイルのレンダリング方法を変更することで、下位互換のツールの更新をプッシュできます。`package.json` ファイルは、Projen モデルによって部分的に所有されているファイルです。Projen は package.json ファイルに含まれる依存関係バージョンを認識しますが、他のオプションはモデルから取得する必要があります。

**依存関係を追加して `projenrc.ts` ファイルを更新するには**

1. 「`projen.ts`」ファイルで、開発セクションに移動します。

1. ブループリントで使用する依存関係を追加します。

1. 次のコマンドを使用して、プロジェクトの設定を再生成します。

   ```
   yarn projen && yarn
   ```

## 依存関係タイプの不一致の処理
<a name="handle-dependency-mismatches"></a>

[[Yarn]](https://yarnpkg.com/) 更新後、リポジトリパラメータに関して次のエラーが表示される場合があります。

```
Type 'SourceRepository' is missing the following properties from type 'SourceRepository': synthesisSteps, addSynthesisStep
```

エラーは、あるコンポーネントが別のコンポーネントの新しいバージョンに依存しているが、依存するコンポーネントが古いバージョンに固定されている場合に発生する依存関係の不一致が原因です。エラーは、すべてのコンポーネントが同じバージョンに依存して、バージョンが同期されるようにすることで修正できます。バージョンの取り扱い方法がわからない場合は、al blueprint-vended パッケージを同じ最新バージョン (`0.0.x`) に維持することをお勧めします。次の例は、すべての依存関係が同じバージョンに依存するように `package.json` ファイルを設定する方法を示しています。

```
...
"@caws-blueprint-component/caws-environments": "^0.1.12345",
"@caws-blueprint-component/caws-source-repositories": "^0.1.12345",
"@caws-blueprint-component/caws-workflows": "^0.1.12345",
"@caws-blueprint-component/caws-workspaces": "^0.1.12345",
"@caws-blueprint-util/blueprint-utils": "^0.1.12345",
...
"@caws-blueprint/blueprints.blueprint": "*",
```

すべての依存関係のバージョンを設定したら、次のコマンドを使用します。

```
yarn install
```

## yarn と npm の使用
<a name="use-yarn-npm"></a>

ブループリントでは、ツールに [[Yarn]](https://yarnpkg.com/) を使用します。[[npm]](https://www.npmjs.com/) と Yarn を使用すると、依存関係ツリーの解決方法がそれぞれ異なるため、ツールの問題が発生します。このような問題を回避するには、Yarn のみを使用することをお勧めします。

npm を使用して誤って依存関係をインストールした場合は、生成された `package-lock.json` ファイルを削除し、必要な依存関係で `.projenrc.ts` ファイルが更新されていることを確認します。Projen を使用してプロジェクトの設定を再生成します。

モデルから再生成するには、以下を使用します。

```
yarn projen
```

.projenrc.ts ファイルが必要な依存関係で更新されていることを確認したら、次のコマンドを使用します。

```
yarn
```

## ツールとコンポーネントのアップグレード
<a name="upgrade-tooling-components"></a>

場合によっては、利用可能な新機能を導入するために、ツールとコンポーネントをアップグレードする場合があります。バージョンの取り扱い方法に確信がない限り、すべてのコンポーネントを同じバージョンに保つことをお勧めします。バージョンはコンポーネント間で同期されるため、すべてのコンポーネントで同じバージョンで適切な依存関係が確保されます。

### Yarn ワークスペースモノレポの使用
<a name="upgrade-tooling-components"></a>

次のコマンドを使用して、カスタムブループリントのリポジトリのルートから utils とコンポーネントをアップグレードします。

```
yarn upgrade @amazon-codecatalyst/*
```

モノレポを使用していない場合は、次のコマンドを使用します。

```
yarn upgrade —pattern @amazon-codecatalyst/*
```

ツールとコンポーネントのアップグレードに使用できるその他のオプション:
+ 最新バージョンを取得するには、npm view `@caws-blueprint-component/<some-component>` を使用します。
+ package.json ファイルでバージョンを設定し、コマンド「`yarn`」を使用して、最新バージョンに手動で増やします。すべてのコンポーネントと utils のバージョンは同じである必要があります。