

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.

# Konfiguration der Abhängigkeiten Ihrer Anwendung von Elastic Beanstalk
<a name="nodejs-platform-dependencies"></a>

Ihre Anwendung verfügt möglicherweise über Abhängigkeiten von einigen Node.js-Modulen, wie z. B. Modulen, die Sie in `require()`-Anweisungen angeben. Diese Module werden in einem `node_modules`-Verzeichnis gespeichert. Wenn Ihre Anwendung ausgeführt wird, lädt Node.js die Module aus diesem Verzeichnis. Weitere Informationen finden Sie in der Node.js-Dokumentation unter [Laden aus den Ordnern „node\$1modules“](https://nodejs.org/api/modules.html#modules_loading_from_node_modules_folders).

Sie können diese Modul-Abhängigkeiten mithilfe einer `package.json`-Datei angeben. Wenn Elastic Beanstalk diese Datei erkennt und kein `node_modules`-Verzeichnis vorhanden ist, führt Elastic Beanstalk `npm install` als der *webapp*-Benutzer aus. Der `npm install`-Befehl installiert die Abhängigkeiten in dem `node_modules`-Verzeichnis, das Elastic Beanstalk zuvor erstellt hat. Der `npm install`-Befehl greift auf die in der `package.json`-Datei aufgeführten Pakete aus der öffentlichen npm-Registrierung oder von anderen Orten zu. Weitere Informationen finden Sie auf der Website [npm-Dokumente](https://docs.npmjs.com/about-the-public-npm-registry). 

Wenn Elastic Beanstalk das `node_modules`-Verzeichnis erkennt, führt Elastic Beanstalk `npm install` nicht aus, auch wenn eine `package.json`-Datei existiert. Elastic Beanstalk geht davon aus, dass die Abhängigkeitspakete im `node_modules`-Verzeichnis verfügbar sind, sodass sie von Node.js abgerufen und geladen werden können.

In den folgenden Abschnitten erhalten Sie weitere Informationen zu den Node.js-Modulabhängigkeiten für Ihre Anwendung.

**Anmerkung**  
Wenn bei der Ausführung von `npm install` durch Elastic Beanstalk Probleme bei der Bereitstellung auftreten, sollten Sie einen alternativen Ansatz in Betracht ziehen. Fügen Sie das `node_modules`-Verzeichnis mit den Abhängigkeiten zu Ihrem Anwendungs-Quell-Bundle hinzu. Dadurch können Sie Probleme bei der Installation von Abhängigkeiten aus der öffentlichen npm-Registry umgehen, während Sie das Problem untersuchen. Da die Abhängigkeitsmodule aus einem lokalen Verzeichnis stammen, kann dies auch dabei helfen, die Bereitstellungszeit zu verkürzen. Weitere Informationen finden Sie unter [Einschließen von Node.js-Abhängigkeiten in ein node\$1modules-Verzeichnis](#nodejs-platform-nodemodules).

## Angeben von Node.js-Abhängigkeiten mit einer package.json-Datei
<a name="nodejs-platform-packagejson"></a>

Sie können mithilfe einer `package.json`-Datei im Stammverzeichnis Ihrer Projektquelle Abhängigkeitspakete angeben und einen Startbefehl bereitstellen. Wenn eine `package.json`-Datei vorhanden ist und kein `node_modules`-Verzeichnis im Stammverzeichnis Ihrer Projektquelle vorhanden ist, wird Elastic Beanstalk `npm install` als *webapp*-Benutzer ausführen, um Abhängigkeiten aus der öffentlichen npm-Registry zu installieren. Außerdem wird Elastic Beanstalk die Anwendung mit dem Befehl `start` starten. Weitere Informationen zur `package.json`-Datei finden Sie unter [Angeben von Abhängigkeiten in einer `package.json`-Datei](https://docs.npmjs.com/specifying-dependencies-and-devdependencies-in-a-package-json-file) auf der *npm-Docs-Website*. 

Geben Sie mit dem Schlüsselwort `scripts` einen Startbefehl an. Derzeit wird das Schlüsselwort `scripts` anstelle der Legacy-Option `NodeCommand` im Namespace `aws:elasticbeanstalk:container:nodejs` verwendet.

**Example package.json – Express**  

```
{
    "name": "my-app",
    "version": "0.0.1",
    "private": true,
    "dependencies": {
      "ejs": "latest",
      "aws-sdk": "latest",
      "express": "latest",
      "body-parser": "latest"
    },
    "scripts": {
      "start": "node app.js"
    }
  }
```

**Produktionsmodus und Entwicklungsabhängigkeiten**  
Verwenden Sie die Attribute *dependencies* und *devDependencies*, um Ihre Abhängigkeiten in der `package.json`-Datei anzugeben. Das Attribut *dependencies* bezeichnet Pakete, die Ihre Anwendung in der Produktion benötigt. Das Attribut *devDependencies* bezeichnet Pakete, die nur für die lokale Entwicklung und das Testen benötigt werden.

Wenn Sie die *devDependencies*-Pakete installieren müssen, setzen Sie die Umgebungseigenschaft NPM\$1USE\$1PRODUCTION auf `false`. Mit dieser Einstellung werden wir die obigen Optionen nicht verwenden, wenn wir npm install ausführen. Dies führt dazu, dass die *devDependencies*-Pakete installiert werden.

## Einschließen von Node.js-Abhängigkeiten in ein node\$1modules-Verzeichnis
<a name="nodejs-platform-nodemodules"></a>

Wenn Sie Abhängigkeitspakete zusammen mit Ihrem Anwendungscode in Umgebungsinstances bereitstellen möchten, fügen Sie sie in das Verzeichnis `node_modules` im Stammverzeichnis der Projektquelle ein. Weitere Informationen finden Sie unter [Pakete lokal herunterladen und installieren](https://docs.npmjs.com/downloading-and-installing-packages-locally) auf der *npm-Docs-Website*. 

Wenn Sie ein `node_modules` Verzeichnis für eine AL2 Node.js Plattformversion von AL2023/bereitstellen, geht Elastic Beanstalk davon aus, dass Sie Ihre eigenen Abhängigkeitspakete bereitstellen, und vermeidet die Installation von Abhängigkeiten, die in einer [package.json-Datei](#nodejs-platform-packagejson) angegeben sind. Node.jssucht im Verzeichnis nach Abhängigkeiten. `node_modules` Weitere Informationen finden Sie unter [Laden aus node\$1modules-Ordnern](https://nodejs.org/api/modules.html#modules_loading_from_node_modules_folders) in der Node.js-Dokumentation.

**Anmerkung**  
Wenn bei der Ausführung von `npm install` durch Elastic Beanstalk Probleme bei der Bereitstellung auftreten, sollten Sie bei der Untersuchung des Problems den in diesem Thema beschriebenen Ansatz als Workaround verwenden.   
 

### Überlegungen zu Node.js auf Amazon Linux 2
<a name="nodejs-al2-considerations"></a>

Lesen Sie diesen Abschnitt, wenn Sie einen Plattformzweig von *Node.js* verwenden, der auf *Amazon Linux 2* ausgeführt wird.

#### Überlegungen zu Node.js auf Amazon Linux 2
<a name="nodejs-al2-considerations-detail"></a>

**Anmerkung**  
Die Informationen in diesem Thema beziehen sich auf Node.js Plattformbranches, die auf Amazon Linux 2 ausgeführt werden. In diesem Artikel werden AL2 spezifische Funktionen und Verhaltensweisen beschrieben, die sich von AL2023 unterscheiden.

**Varianten von Befehlen**  
Die Befehlsoptionen variieren je nach der npm-Version, die im Amazon Linux 2-Plattformzweig enthalten ist, auf dem Ihre Anwendung ausgeführt wird.
+ npm v6 – Elastic Beanstalk installiert die Abhängigkeiten standardmäßig im Produktionsmodus. Es verwendet den Befehl `npm install --production`. 
+ npm v7 oder höher – Elastic Beanstalk lässt die *devDependencies* weg. Es verwendet den Befehl `npm install --omit=dev`.

Beide oben aufgeführten Befehle installieren keine Pakete, bei denen es sich um *devDependencies* handelt. 

**SSH- und HTTPS-Protokolle für Git-Abhängigkeiten**  
Ab der Amazon Linux 2-Plattformversion vom 7. März 2023 können Sie die Protokolle SSH und HTTPS verwenden, um Pakete aus einem Git-Repository abzurufen. Plattformzweig Node.js 16 unterstützt sowohl das SSH- als auch das HTTPS-Protokoll. Node.js 14 unterstützt nur das HTTPS-Protokoll.

**Example package.json – Node.js 16 unterstützt sowohl HTTPS als auch SSH**  

```
    ...
    "dependencies": {
      "aws-sdk": "https://github.com/aws/aws-sdk-js.git",
      "aws-chime": "git+ssh://git@github.com:aws/amazon-chime-sdk-js.git"
    }
```

**Versionen und Versionsbereiche**  
Verwenden Sie das Schlüsselwort `engines` in der Datei `package.json`, um die Node.js-Version anzugeben, die Ihre Anwendung verwenden soll. Mit der npm-Notation können Sie auch einen Versionsbereich angeben. Weitere Informationen zur Syntax für Versionsbereiche finden Sie unter [Semantische Versionsverwaltung mit npm](https://nodejs.dev/learn/semantic-versioning-using-npm) auf der Website Node.js. Das Schlüsselwort `engines` in der Node.js `package.json`-Datei ersetzt die ältere Option `NodeVersion` im `aws:elasticbeanstalk:container:nodejs`-Namespace.

**Wichtig**  
Die Funktion zur Angabe von Versionsbereichen ist für Plattformzweige von Node.js, auf AL2023 denen sie ausgeführt werden, nicht verfügbar. Wir unterstützen nur eine Version von Node.js innerhalb einer bestimmten Node.js -Verzweigung auf AL2023. Wenn Ihre `package.json`-Datei einen Versionsbereich angibt, ignorieren wir diesen und verwenden standardmäßig die Version des Plattformzweigs von Node.js.

**Example `package.json` – Einzelne Node.js-Version**  

```
{
    ...
    "engines": { "node" : "14.16.0" }
  }
```

**Example `package.json` – Node.js Versionsbereich**  

```
{
    ...
    "engines": { "node" : ">=10 <11" }
  }
```

Wenn ein Versionsbereich angegeben wird, installiert Elastic Beanstalk die neueste Node.js-Version, die der Plattform innerhalb des Bereichs zur Verfügung steht. In diesem Beispiel gibt der Bereich an, dass die Version größer oder gleich als Version 10 sein muss, aber kleiner als Version 11. Infolgedessen installiert Elastic Beanstalk die neueste Version von Node.js 10.x.y, die auf der [unterstützten Plattform](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.nodejs) verfügbar ist.

Beachten Sie, dass Sie jeweils nur eine Node.js-Version angeben können, die Ihrem Plattformzweig entspricht. Wenn Sie beispielsweise den Plattformzweig Node.js 16 verwenden, können Sie nur eine 16.x.y-Version Node.js angeben. Sie können die von npm unterstützten Versionsbereichsoptionen verwenden, um eine größere Flexibilität zu ermöglichen. Gültige Versionen von Node.js für jeden Plattformzweig finden Sie unter [https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.nodejs](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.nodejs) im Handbuch *AWS Elastic Beanstalk -Plattformen*.

**Anmerkung**  
Wenn die von Ihnen verwendete Version von Node.js von der Plattform nicht mehr unterstützt wird, müssen Sie die Einstellung der Node.js-Version vor der Ausführung einer [Plattform-Aktualisierung](using-features.platform.upgrade.md) ändern oder löschen. Dieser Fall kann eintreten, wenn eine Schwachstelle bei einer oder mehreren Versionen von Node.js identifiziert wird.  
In diesem Fall schlägt die Aktualisierung auf eine neue Plattformversion, die die konfigurierte Node.js-Version nicht unterstützt, fehl. Um zu vermeiden, dass eine neue Umgebung erstellt werden muss, ändern Sie die Einstellung der Node.js-Version in `package.json` in eine Node.js-Version, die sowohl von der alten als auch von der neuen Version unterstützt wird. Sie können einen Node.js-Versionsbereich angeben, der eine unterstützte Version enthält, wie oben in diesem Thema beschrieben. Außerdem können Sie die Einstellung entfernen und dann das neue Quellpaket bereitstellen.