

Amazon CodeCatalyst ist nicht mehr offen für Neukunden. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Wie migriert man von CodeCatalyst](migration.md).

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Umgang mit Abhängigkeiten, Diskrepanzen und Tools
<a name="dependencies-tooling-bp"></a>

Ein falsches Abhängigkeitsmanagement kann zu Build-Fehlern und Laufzeitproblemen für Benutzer führen, die Ihre benutzerdefinierten Blueprints verwenden. Veraltete Tools und Komponenten können Blueprint-Benutzer daran hindern, auf die neuesten Funktionen und Bugfixes zuzugreifen. Sie können Abhängigkeiten verwalten, fehlende Abhängigkeiten behandeln und Tools und Komponenten aktualisieren, um sicherzustellen, dass alle Abhängigkeiten auf denselben Komponentenversionen basieren und die Komponenten synchronisiert sind.

**Topics**
+ [Abhängigkeiten hinzufügen](#add-dependencies)
+ [Umgang mit nicht übereinstimmenden Abhängigkeitstypen](#handle-dependency-mismatches)
+ [Mit Garn und Npm](#use-yarn-npm)
+ [Aktualisierung von Tools und Komponenten](#upgrade-tooling-components)

## Abhängigkeiten hinzufügen
<a name="add-dependencies"></a>

Als Blueprint-Autor müssen Sie Ihrem Blueprint möglicherweise Pakete hinzufügen, wie z. `@amazon-codecatalyst/blueprint-component.environments` [Sie müssen die `projen.ts` Datei mit diesem Paket aktualisieren und dann die Konfiguration Ihres Projekts mit Projen neu generieren.](https://github.com/projen/projen) Projen fungiert als Projektmodell für jede Blueprint-Codebasis, was die Möglichkeit bietet, abwärtskompatible Tooling-Updates zu übertragen, indem die Art und Weise geändert wird, wie das Modell Konfigurationsdateien rendert. Bei der `package.json` Datei handelt es sich um eine Datei, die teilweise dem Projen-Modell gehört. Projen erkennt die in der Datei package.json enthaltenen Abhängigkeitsversionen an, aber andere Optionen müssen aus dem Modell stammen.

**Um eine Abhängigkeit hinzuzufügen und eine Datei zu aktualisieren `projenrc.ts`**

1. Navigieren Sie in der `projen.ts` Datei zum Abschnitt Deps.

1. Fügen Sie die Abhängigkeit hinzu, die Sie in Ihrem Blueprint verwenden möchten.

1. Verwenden Sie den folgenden Befehl, um die Konfiguration Ihres Projekts neu zu generieren:

   ```
   yarn projen && yarn
   ```

## Umgang mit nicht übereinstimmenden Abhängigkeitstypen
<a name="handle-dependency-mismatches"></a>

Nach einem [Yarn-Update](https://yarnpkg.com/) wird möglicherweise der folgende Fehler in Bezug auf einen Repository-Parameter angezeigt:

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

Der Fehler ist auf einen Abhängigkeitskonflikt zurückzuführen, der auftritt, wenn eine Komponente auf einer neueren Version einer anderen Komponente basiert, die abhängige Komponente jedoch an eine ältere Version angeheftet ist. Der Fehler kann behoben werden, indem alle Komponenten auf derselben Version basieren, sodass die Version zwischen ihnen synchronisiert wird. Es ist am besten, für alle Blueprint-Pakete dieselbe aktuelle Version (`0.0.x`) zu verwenden, es sei denn, Sie sind sich sicher, wie Sie mit den Versionen umgehen. Das folgende Beispiel zeigt, wie die `package.json` Datei so konfiguriert werden kann, dass alle Abhängigkeiten von derselben Version abhängen:

```
...
"@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": "*",
```

Nachdem Sie die Versionen für alle Abhängigkeiten konfiguriert haben, verwenden Sie den folgenden Befehl:

```
yarn install
```

## Mit Garn und Npm
<a name="use-yarn-npm"></a>

Blueprints verwenden [Garn für Werkzeuge](https://yarnpkg.com/). Die Verwendung von [npm](https://www.npmjs.com/) und Yarn führt zu Tooling-Problemen, da die Art und Weise, wie Abhängigkeitsbäume von beiden gelöst werden, unterschiedlich ist. Um solche Probleme zu vermeiden, ist es am besten, nur Yarn zu verwenden.

Wenn Sie versehentlich Abhängigkeiten mit npm installiert haben, können Sie die generierte `package-lock.json` Datei entfernen und sicherstellen, dass Ihre `.projenrc.ts` Datei mit den benötigten Abhängigkeiten aktualisiert wird. Sie regenerieren die Konfiguration Ihres Projekts mit Projen.

Verwenden Sie Folgendes, um aus dem Modell zu regenerieren:

```
yarn projen
```

Nachdem Sie sichergestellt haben, dass Ihre Datei .projenrc.ts mit den erforderlichen Abhängigkeiten aktualisiert wurde, verwenden Sie den folgenden Befehl:

```
yarn
```

## Aktualisierung von Tools und Komponenten
<a name="upgrade-tooling-components"></a>

Gelegentlich möchten Sie möglicherweise Ihre Werkzeuge und Komponenten aktualisieren, um neue Funktionen zur Verfügung zu stellen. Es wird empfohlen, alle Komponenten auf derselben Version zu belassen, es sei denn, Sie sind sich sicher, wie Sie mit den Versionen umgehen. Versionen werden zwischen den Komponenten synchronisiert, sodass die gleichen Versionen für alle Komponenten die richtige Abhängigkeit zwischen ihnen gewährleisten.

### Verwenden Sie Yarn Workspace Monorepo
<a name="upgrade-tooling-components"></a>

Verwenden Sie den folgenden Befehl, um Dienstprogramme und Komponenten aus dem Stammverzeichnis des Repositorys eines benutzerdefinierten Blueprints zu aktualisieren:

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

Verwenden Sie den folgenden Befehl, wenn Sie kein Monorepo verwenden:

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

Andere Optionen, mit denen Sie Tools und Komponenten aktualisieren können:
+ Verwenden Sie npm view`@caws-blueprint-component/<some-component>`, um die neueste Version zu erhalten.
+ Erhöhen Sie manuell auf die neueste Version, indem Sie die Version in Ihrer package.json-Datei festlegen und den folgenden Befehl verwenden:. `yarn` Alle Komponenten und Utils sollten dieselbe Version haben.