Guías
Frontend Actualizado el 6 de noviembre de 2026

Angular CLI

Comandos de Angular CLI v22: instalar, crear proyectos, servir en red local, generar código, compilar, probar y migrar.

  • #angular
  • #cli
  • #ng
  • #typescript

Instalación y entorno

AcciónComando
Instalar la CLI globalmente
Instalar la versión 22 exacta
Verificar la versión instalada
Desinstalar la CLI global
Limpiar el store de pnpm (paquetes sin uso)
Ver la ayuda general
Configurar Analytics de Angular

Crear proyectos (ng new)

AcciónComando
Crear un proyecto de forma interactiva
Crear en la carpeta actual (sin subcarpeta)
Personalizar el nombre o la ruta de la carpeta
Proyecto con SCSS
Proyecto con SSR (Server-Side)
Sin SSR (solo SPA, client-only)
Sin archivos de test (.spec.ts)
Sin inicializar el repositorio Git
Usar pnpm como gestor de paquetes
Sin instalación inicial (pnpm install)
Aceptar los valores por defecto

Servidor local y red (ng serve)

AcciónComando
Iniciar el servidor básico
Servir y abrir el navegador
Acceso desde red local (WiFi/LAN)
Cambiar el puerto (ej. 8080)
Red local con puerto personalizado
Servidor con SSL / HTTPS nativo
Desactivar el live reload
Permitir hosts externos

Exponer la app en tu red local

Por defecto Angular levanta en localhost:4200, accesible solo desde tu PC. Para probarla desde un móvil, una tablet u otro equipo en la misma red:

  1. Ejecuta el servidor con el host abierto.

    bash
    ng serve --host 0.0.0.0
  2. Obtén tu IP local con el comando de tu sistema: ipconfig en Windows, ifconfig o ip a en Linux y Mac. Busca la dirección IPv4 (por ejemplo 192.168.1.75).

  3. Abre en el otro dispositivo la IP y el puerto:

    output
    http://192.168.1.75:4200

Si no carga:

  • Confirma que ambos dispositivos están en la misma red WiFi, no en la red de invitados ni en datos móviles.
  • En Windows, permite el acceso en el Firewall cuando Node.js lo pida, o añade una regla de entrada para el puerto 4200.
  • En Linux, ejecuta sudo ufw allow 4200/tcp.

Scripts recomendados en package.json

json
"scripts": {
  "ng": "ng",
  "start": "ng serve",
  "start:host": "ng serve --host 0.0.0.0 --port 4200",
  "start:open": "ng serve -o",
  "build": "ng build",
  "build:prod": "ng build --configuration production",
  "watch": "ng build --watch --configuration development",
  "test": "ng test",
  "test:ci": "ng test --watch=false --code-coverage",
  "clean": "rm -rf .angular/cache dist node_modules && pnpm install"
}

Con esto puedes ejecutar pnpm run start:host.

Host y puerto fijos en angular.json

Para que siempre levante en red, defínelos en angular.json:

json
"serve": {
  "options": {
    "host": "0.0.0.0",
    "port": 4200
  }
}

Generar código (ng generate)

AcciónComando
Componente
Componente standalone
Componente con template y estilos inline
Servicio injectable
Guard de rutas
Interceptor HTTP
Pipe de transformación
Directiva personalizada
Interface de TypeScript
Enum
Clase

Build y producción (ng build)

AcciónComando
Build optimizado de producción
Build para un entorno específico
Build con base-href personalizado
Generar source maps para depurar
Build en modo watch (recompila)
Analizar el tamaño de los bundles

Testing y calidad (ng test)

AcciónComando
Ejecutar las pruebas unitarias
Ejecutar con cobertura
Ejecutar una sola vez (modo CI)
Ejecutar sin interfaz (headless)
Ejecutar el linter
Corregir errores de linting

Actualizar y reparar

AcciónComando
Ver actualizaciones pendientes
Actualizar Angular Core y CLI
Forzar la actualización (incompatibilidades)
Actualizar a la versión siguiente (next)

Reparar node_modules y caché

bash
# Full clean reinstall (keeps pnpm-lock.yaml so versions stay pinned)
rm -rf node_modules && pnpm install

# Clear the Angular build cache
rm -rf .angular/cache

# Fix vulnerable dependencies
pnpm audit --fix

Schematics y librerías (ng add)

AcciónComando
Añadir Angular Material
Añadir PWA / Service Worker
Añadir Angular Localize (i18n)
Añadir Tailwind CSS
Generar un componente Material (tabla)
Generar navegación / sidebar de Material

Migración moderna (schematics)

AcciónComando
Migrar al nuevo control flow (@if / @for)
Migrar componentes a standalone
Migrar la inyección a la función inject()
Migrar a lazy loading de rutas