Angular y Domino: Una combinación potente para Server-Side Rendering.

Si estás usando Angular y necesitas acceder al DOM con SSR, usa el paquete domino.
Domino ofrece soporte para la API del DOM y también selectores CSS para querySelector(), querySelectorAll() y matches().
Instala el paquete domino desde tu terminal:
npm install domino --saveAgrega Angular Universal a tu aplicación con ng add @nguniversal/express-engine. Edita el archivo server.ts y agrega las siguientes líneas. Para configurarlo, crea un objeto "document" y un "window" de forma global:
const domino = require('domino');
const fs = require('fs');
const path = require('path');
// Usa el index.html del navegador como plantilla para el objeto window simulado
const template = fs
.readFileSync(path.join(join(process.cwd(), 'dist/yourprojectname/browser'), 'index.html'))
.toString();
// Shim para los objetos globales window y document.
const window = domino.createWindow(template);
global['window'] = window;
global['document'] = window.document;Si quieres copiar y pegar, por favor cambia el nombre del proyecto.
Ten en cuenta que para el renderizado del lado del servidor, el comando de compilación es build:ssr y necesitas publicar el directorio browser:
npm run build:ssr
dist/yourprojectname/browserModern frontend development — Angular, React, TypeScript, accessibility, and performance.
Artículos Relacionados
Formularios en Angular: Cómo elegir entre Template-Driven, Reactive y Signal-Driven Forms
Una comparación práctica entre Template-Driven, Reactive y Signal-Driven Forms en Angular. Aprende a crear formularios con validación fuertemente tipada, control flow moderno y estado computado con Signals.
La propiedad 'exportAs' en Angular: Guía práctica para compartir el estado de componentes
En Angular, cuando creamos componentes con propiedades públicas o estado para compartir con otros, existen varias opciones: emitir eventos, inyectar un servicio con Subject o usar la propiedad exportAs en el template.
Compartir este artículo
Si esta guía te resultó útil, compártela con tu equipo o con otros desarrolladores.
Software real. Lecciones reales.
Comparto las lecciones que aprendí por las malas, para que puedas evitarlas o estar preparado cuando ocurran.
Únete a 13,800+ desarrolladores y lectores.
Cero spam. Cancela tu suscripción en cualquier momento.