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-buildavec 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_SCRIPTSavec 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.