Par défaut, l'environnement d'exécution Node.js exécute npm run build
si un script build
est détecté dans le fichier package.json
. Si vous avez besoin d'exercer un contrôle supplémentaire sur vos étapes de compilation avant de démarrer votre application, vous pouvez fournir une étape de compilation personnalisée. Les étapes de compilation personnalisées peuvent être exécutées en ajoutant gcp-build
dans le fichier package.json
.
Pour empêcher votre compilation d'exécuter le script npm run build
, vous devez effectuer l'une des opérations suivantes :
- Ajoutez un script
gcp-build
avec une valeur vide dans votre fichierpackage.json
:"gcp-build":""
. Pour en savoir plus sur la configuration depackage.json
, consultez la page Configurations des buildpacks Node.js. Ajoutez la variable d'environnement de compilation
GOOGLE_NODE_RUN_SCRIPTS
avec une valeur vide dans votre fichierapp.yaml
.build_env_variables: GOOGLE_NODE_RUN_SCRIPTS: ''
build_env_variables
du fichier app.yaml
.
Lorsque ce script est exécuté, les dépendances des champs dependencies
et devDependencies
du fichier package.json
sont disponibles.
Une fois que vous avez exécuté l'étape de compilation personnalisée, App Engine supprime et génère à nouveau le dossier node_modules
en n'installant que les dépendances de l'environnement de production déclarées dans le champ dependencies
du fichier package.json
.
Pour en savoir plus sur la configuration de l'environnement d'exécution pour les étapes de compilation personnalisées, consultez la page Exécuter des étapes de compilation personnalisées lors du déploiement pour les buildpacks Node.js.
Exemple
Un script de compilation personnalisé peut être employé pour des tâches de prétraitement, telles que le prétraitement des fichiers CSS, la minimisation des fichiers JavaScript côté client, ou l'exécution d'outils tels que webpack
ou gulp
.
Par exemple, si vous souhaitez compiler TypeScript en JavaScript, le fichier package.json
peut ressembler à ce qui suit. Notez la présence du script gcp-build
:
Diffuser des fichiers statiques
Lorsque vous générez ou copiez des fichiers pendant l'étape de compilation personnalisée, App Engine ne diffuse pas ces fichiers statiques directement depuis votre application à l'aide des éléments static_dir
ou static_files
définis dans le fichier app.yaml
. À la place, App Engine importe les fichiers statiques dans l'infrastructure de diffusion de l'environnement standard avant d'exécuter l'étape de compilation personnalisée. Toute requête adressée aux fichiers générés ou copiés lors de l'étape de compilation personnalisée génère une erreur HTTP 404 NOT FOUND
.