De forma predeterminada, el entorno 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 control adicional sobre tus pasos de la compilación antes de iniciar tu aplicación, puedes proporcionar un paso de compilación personalizado. Para ejecutar los pasos de compilación personalizados, agrega gcp-build
en tu archivo package.json
.
Para evitar que tu compilación ejecute la secuencia de comandos npm run build
, debes hacer lo siguiente:
- Agrega una secuencia de comandos
gcp-build
con un valor vacío en el archivopackage.json
:"gcp-build":""
. Para obtener detalles sobre la configuración depackage.json
, consulta Configuración de los paquetes de compilación de Node.js. Agrega 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
en el archivo app.yaml
.
Cuando se ejecuta esta secuencia de comandos, las dependencias en los campos dependencies
y devDependencies
del archivo package.json
están disponibles.
Después de ejecutar este paso, App Engine quita y vuelve a generar la carpeta node_modules
mediante la instalación de dependencias de producción declaradas en el campo dependencies
del archivo package.json
.
Si deseas obtener más información sobre cómo configurar el entorno de ejecución para los pasos de compilación personalizados, consulta Ejecuta pasos de compilación personalizados durante la implementación para paquetes de compilación de Node.js.
Ejemplo
Una secuencia de comandos de compilación personalizada se puede usar para tareas de procesamiento previo, como el procesamiento previo de CSS, la reducción de JavaScript del cliente o la ejecución de herramientas, como webpack
o gulp
.
Por ejemplo, para compilar TypeScript en JavaScript, tu archivo package.json
podría verse de la siguiente manera. Ten en cuenta la secuencia de comandos gcp-build
:
Entrega archivos estáticos
Cuando generas o copias archivos durante el paso de compilación personalizado, App Engine no entrega estos archivos estáticos directamente desde tu app mediante el uso de los elementos static_dir
o static_files
elementos definidos en el archivo app.yaml
. En su lugar, App Engine sube los archivos estáticos a la infraestructura de entrega en el 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 personalizado genera un error de HTTP
404 NOT FOUND
.