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 compilazione prima di avviare l'applicazione, puoi fornire un passaggio di compilazione personalizzato. I passaggi di compilazione personalizzati possono essere eseguiti aggiungendo gcp-build
nel
package.json
file.
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 informazioni dettagliate sulla configurazione dipackage.json
, consulta Configurazioni dei buildpack Node.js. Aggiungi la variabile di ambiente di compilazione
GOOGLE_NODE_RUN_SCRIPTS
con un valore vuoto nel fileapp.yaml
.build_env_variables: GOOGLE_NODE_RUN_SCRIPTS: ''
build_env_variables
del file app.yaml
.
Quando viene eseguito questo script, le dipendenze nei campi dependencies
e
devDependencies
del file package.json
sono disponibili.
Dopo aver eseguito il passaggio di compilazione 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 passaggi di compilazione personalizzati, consulta Eseguire i passaggi di compilazione personalizzati durante il deployment per i buildpack Node.js.
Esempio
Uno script di compilazione personalizzato può essere utilizzato per attività di preelaborazione, come la preelaborazione del 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. Nota lo script gcp-build
:
Gestione dei file statici
Quando generi o copi file durante il passaggio di compilazione 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 carica invece
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 compilazione personalizzato genera un errore HTTP 404 NOT FOUND
.