Despliegue
El despliegue en Node.js es el preset de salida predeterminado de Analog para las compilaciones de producción.
Al ejecutar npm run build
con el preset predeterminado, el resultado será un punto de entrada que lanza un servidor Node listo para ejecutar.
Para iniciar el servidor independiente, ejecuta:
$ node dist/analog/server/index.mjs
Listening on http://localhost:3000
Variables de Entorno
Puedes personalizar el comportamiento del servidor usando las siguientes variables de entorno:
NITRO_PORT
oPORT
(por defecto3000
)NITRO_HOST
oHOST
Presets Integrados
Analog puede generar diferentes formatos de salida adecuados para diferentes proveedores de hosting desde la misma base de código. Puedes cambiar el preset de despliegue usando una variable de entorno o vite.config.ts
.
Se recomienda usar variables de entorno para despliegues que dependen de CI/CD.
Ejemplo: Usando BUILD_PRESET
BUILD_PRESET=node-server
Ejemplo: Usando vite.config.ts
import { defineConfig } from 'vite';
export default defineConfig({
plugins: [
analog({
nitro: {
preset: 'node-server',
},
}),
],
});
Desplegando con un Prefijo de URL Personalizado
Si estás desplegando con un prefijo de URL personalizado, como https://domain.com/ basehref
, debes realizar estos pasos para que server-side-data-fetching, marcado HTML y activos, y rutas API dinámicas funcionen correctamente en el basehref
especificado.
-
Actualiza el archivo
app.config.ts
.Esto instruye a Angular sobre cómo reconocer y generar URLs.
import { ApplicationConfig } from '@angular/core';
import { APP_BASE_HREF } from '@angular/common';
export const appConfig: ApplicationConfig = {
providers: [
[{ provide: APP_BASE_HREF, useValue: import.meta.env.BASE_URL || '/' }],
...
],
}; -
En la compilación de producción de CI
# establece la URL base para la obtención de datos del lado del servidor
export VITE_ANALOG_PUBLIC_BASE_URL="https://domain.com/basehref"
# Prefija todos los activos y HTML con /basehref/
# si usas nx:
npx nx run appname:build:production --baseHref='/basehref/'
# si usas la compilación directa de Angular:
npx ng build --baseHref="/basehref/" -
En contenedores de producción, especifica la bandera de entorno
NITRO_APP_BASE_URL
.NITRO_APP_BASE_URL="/basehref/"
Dado un archivo vite.config.ts
similar a este:
plugins: [
analog({
apiPrefix: 'api',
nitro: {
routeRules: {
'/': {
prerender: false,
},
},
},
prerender: {
routes: async () => {
return ['/'];
}
}
Nitro prefija todas las rutas API con /basehref/api
.