De forma predeterminada, el tiempo de ejecución de Node.js ejecutará npm run build
si se detecta una secuencia de comandos build
en el archivo package.json
. Si necesitas tener más control sobre los pasos de compilación antes de iniciar la aplicación, puedes proporcionar un paso de compilación personalizado. Para ejecutar pasos de compilación personalizados, añade gcp-build
en el archivo package.json
.
Para evitar que tu compilación ejecute la secuencia de comandos npm run build
, debes hacer lo siguiente:
- Añade una secuencia de comandos
gcp-build
con un valor vacío en tu archivopackage.json
:"gcp-build":""
. Para obtener información sobre cómo configurarpackage.json
, consulta Configuraciones de paquetes de compilación de Node.js. Añade la variable de entorno de compilación
GOOGLE_NODE_RUN_SCRIPTS
con un valor vacío en el archivoapp.yaml
.build_env_variables: GOOGLE_NODE_RUN_SCRIPTS: ''
build_env_variables
del archivo app.yaml
.
Cuando se ejecuta esta secuencia de comandos, las dependencias de los campos dependencies
y devDependencies
de tu archivo package.json
están disponibles.
Después de ejecutar el paso de compilación personalizado, App Engine elimina y vuelve a generar la carpeta node_modules
instalando solo las dependencias de producción declaradas en el campo dependencies
del archivo package.json
.
Para obtener más información sobre cómo configurar el tiempo de ejecución de los pasos de compilación personalizados, consulta Ejecutar pasos de compilación personalizados durante la implementación para los buildpacks de Node.js.
Ejemplo
Se puede usar una secuencia de comandos de compilación personalizada para tareas de preprocesamiento, como preprocesar CSS, minificar JavaScript del lado del cliente o ejecutar herramientas como webpack
o gulp
.
Por ejemplo, para compilar TypeScript en JavaScript, tu archivo package.json
podría tener un aspecto similar al siguiente. Ten en cuenta la secuencia de comandos gcp-build
:
Suministrar archivos estáticos
Cuando generas o copias archivos durante el paso de compilación personalizada, App Engine no sirve estos archivos estáticos directamente desde tu aplicación mediante los elementos static_dir
u static_files
definidos en el archivo app.yaml
. En su lugar, App Engine sube los archivos estáticos a la infraestructura de servicio del entorno estándar antes de ejecutar el paso de compilación personalizado. Cualquier solicitud a los archivos generados o copiados durante el paso de compilación personalizada da como resultado un error HTTP 404 NOT FOUND
.