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. Puoi eseguire passi di build personalizzati aggiungendo gcp-build
nel
file package.json
.
Per impedire alla build di eseguire lo script npm run build
, devi:
- Aggiungi uno script
gcp-build
con un valore vuoto nel filepackage.json
:"gcp-build":""
. Per maggiori dettagli sulla configurazione dipackage.json
, consulta Configurazioni 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 viene eseguito questo script, sono disponibili le dipendenze nei campi dependencies
e
devDependencies
del file package.json
.
Dopo aver eseguito il 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 ulteriori informazioni su come configurare il runtime per i passi di build personalizzati, consulta Esecuzione di passi di build personalizzati durante il deployment per i buildpack Node.js.
Esempio
Uno script di build personalizzato può essere utilizzato per le attività di pre-elaborazione, ad esempio la pre-elaborazione di CSS, la minimizzazione del codice 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. Prendi nota dello script gcp-build
:
Gestione dei file statici
Quando generi o copi file durante il passaggio di build personalizzata, App Engine non pubblica questi file statici direttamente dalla tua app utilizzando gli elementi static_dir
o static_files
definiti nel file app.yaml
. App Engine, invece, carica i file statici nell'infrastruttura di pubblicazione nell'ambiente standard prima di eseguire il passaggio di build personalizzato. Qualsiasi richiesta ai file generati o copiati durante il passaggio della build personalizzata genera un errore HTTP 404 NOT FOUND
.