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-buildcon 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_SCRIPTScon 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.