Standardmäßig führt die Node.js-Laufzeit npm run build
aus, wenn in package.json
ein build
-Script erkannt wird. Wenn Sie vor dem Starten Ihrer Anwendung zusätzliche Kontrolle über die Build-Schritte benötigen, können Sie einen benutzerdefinierten Build-Schritt angeben. Benutzerdefinierte Build-Schritte können ausgeführt werden, indem Sie gcp-build
in die Datei package.json
einfügen.
Wenn Sie verhindern möchten, dass Ihr Build das Script npm run build
ausführt, haben Sie folgende Möglichkeiten:
- Fügen Sie ein
gcp-build
-Script mit einem leeren Wert in Ihrepackage.json
-Datei ein:"gcp-build":""
. Weitere Informationen zum Konfigurieren derpackage.json
finden Sie unter Konfigurationen von Node.js-Buildpacks. Fügen Sie die Build-Umgebungsvariable
GOOGLE_NODE_RUN_SCRIPTS
mit einem leeren Wert in die Dateiapp.yaml
ein.build_env_variables: GOOGLE_NODE_RUN_SCRIPTS: ''
build_env_variables
der Datei app.yaml
.
Wenn dieses Skript ausgeführt wird, sind die Abhängigkeiten in den Feldern dependencies
und devDependencies
der package.json
-Datei verfügbar.
Nach dem Ausführen des benutzerdefinierten Build-Schritts wird der Ordner node_modules
von App Engine entfernt und neu generiert. Dies geschieht, indem genau die Produktionsabhängigkeiten installiert werden, die im Feld dependencies
der package.json
-Datei deklariert sind.
Weitere Informationen zum Konfigurieren der Laufzeit für benutzerdefinierte Build-Schritte finden Sie unter Benutzerdefinierte Build-Schritte während der Bereitstellung ausführen für Node.js-Buildpacks.
Beispiel
Ein benutzerdefiniertes Build-Skript kann für Vorverarbeitungsaufgaben wie die Vorverarbeitung von CSS, das Komprimieren von clientseitigem JavaScript oder die Ausführung von Tools wie webpack
oder gulp
verwendet werden.
Soll beispielsweise TypeScript in JavaScript kompiliert werden, kann Ihre package.json
-Datei so aussehen. Beachten Sie das Skript gcp-build
:
Statische Dateien bereitstellen
Wenn Sie während des benutzerdefinierten Build-Schrittes Dateien generieren oder kopieren, stellt App Engine diese statischen Dateien nicht direkt über die Anwendung bereit, wobei entweder die Elemente static_dir
oderstatic_files
verwendet werden, die in der Datei app.yaml
definiert sind. Stattdessen lädt App Engine die statischen Dateien in die Bereitstellungsinfrastruktur in der Standardumgebung hoch, bevor der benutzerdefinierte Build-Schritt ausgeführt wird. Jede Anfrage an die Dateien, die während des benutzerdefinierten Build-Schritts generiert oder kopiert werden, führt zum HTTP-Fehler 404 NOT FOUND
.