Per impostazione predefinita, il runtime Node.js eseguirà npm run build
se viene rilevato uno script build
nel file package.json
. Se hai bisogno di un maggiore controllo sui passaggi di build
prima di avviare l'applicazione, puoi fornire un passaggio di build
personalizzato. I passaggi di build personalizzati possono essere eseguiti aggiungendo gcp-build
nel file
package.json
.
Per impedire l'esecuzione dello script npm run build
nella build, devi:
- Aggiungi uno script
gcp-build
con un valore vuoto nel filepackage.json
:"gcp-build":""
. Per informazioni dettagliate sulla configurazione dipackage.json
, vedi Configurazioni dei buildpack Node.js. Aggiungi la variabile di ambiente di build
GOOGLE_NODE_RUN_SCRIPTS
con un valore vuoto nel fileapp.yaml
.build_env_variables: GOOGLE_NODE_RUN_SCRIPTS: ''
build_env_variables
nel file app.yaml
.
Quando questo script viene eseguito, le dipendenze nei campi dependencies
e
devDependencies
del file package.json
sono disponibili.
Dopo l'esecuzione del passaggio di build personalizzato, App Engine rimuove e rigenera la cartella node_modules
installando solo le dipendenze di produzione dichiarate nel campo dependencies
del file package.json
.
Per saperne di più su come configurare il runtime per i passaggi di build personalizzati, consulta Esecuzione di passaggi di build personalizzati durante il deployment per i buildpack Node.js.
Esempio
Uno script di build personalizzato può essere utilizzato per attività di pre-elaborazione, ad esempio
la pre-elaborazione di CSS, la minimizzazione di JavaScript lato client o l'esecuzione di strumenti come
webpack
o gulp
.
Ad esempio, per compilare TypeScript in JavaScript, il file package.json
potrebbe
avere il seguente aspetto. Nota lo script gcp-build
:
Gestione dei file statici
Quando generi o copi file durante il passaggio di compilazione personalizzata, App Engine non gestisce questi file statici direttamente dalla tua app utilizzando gli elementi
static_dir
o static_files
definiti nel file app.yaml
. App Engine carica
i file statici nell'infrastruttura di pubblicazione nell'ambiente standard
prima di eseguire il passaggio di compilazione personalizzato. Qualsiasi richiesta ai file generati o
copiati durante il passaggio di build personalizzata genera un errore HTTP 404 NOT FOUND
.