Angular - Setup
❤️
Al comenzar con Angular, lo primero es configurar un entorno de desarrollo. Una vez listo, podrás iniciar tu primer proyecto. Con solo unos pasos, estarás listo para dar vida a tus primeras aplicaciones con Angular.
Requisitos previos
Angular depende fuertemente del ecosistema Node, por lo que es importante partir con versiones actuales.
- Node.js: Necesitarás Node.js ≥ 18.
- npm (o yarn): Son administradores de paquetes que te permiten gestionar las dependencias de un proyecto. npm viene preinstalado con Node.js, pero puedes optar por otra alternativa.
Verificación rápida:
$ node --version
v24.8.0
$ npm --version
11.6.0
Instalar Angular CLI
Angular no se inicia a mano. El CLI es parte del framework, no una herramienta opcional.
Instalación global:
1
npm install -g @angular/cli
Verificación:
1
ng version
El resultado, debería ser como el siguiente:
$ ng version
_ _ ____ _ ___
/ \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|
/ △ \ | '_ \ / _` | | | | |/ _` | '__| | | | | | |
/ ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | |
/_/ \_\_| |_|\__, |\__,_|_|\__,_|_| \____|_____|___|
|___/
Angular CLI : 21.0.3
Node.js : 24.8.0
Package Manager : npm 11.6.0
Operating System : darwin arm64
Si eso está correcto, el entorno está listo.
Creación del proyecto
En tu terminal, ejecuta el comando ng new con el nombre del proyecto deseado. Por ejemplo, usaremos el nombre de proyecto first-angular-app:
1
ng new first-angular-app
Durante el proceso, Angular CLI hace preguntas clave. Recomendación:
$ ng new first-angular-app
Would you like to enable autocompletion? This will set up your terminal so pressing TAB while typing Angular CLI commands will show
possible options and autocomplete arguments. (Enabling autocompletion will modify configuration files in your home directory.)
Yes
Appended `source <(ng completion script)` to `/Users/mcherrera/.zshrc`. Restart your terminal or run the following to autocomplete `ng` commands:
source <(ng completion script)
☝️ Ese mensaje solo te está preguntando si quieres activar el autocompletado para la Angular CLI en tu terminal (recomendado).
Would you like to share pseudonymous usage data about this project with the Angular Team
at Google under Google's Privacy Policy at https://policies.google.com/privacy. For more
details and how to change this setting, see https://angular.dev/cli/analytics.
No
☝️ Ese mensaje pregunta si deseas compartir datos de uso anónimos (comandos usados, errores, versión del CLI, etc.) con el equipo de Angular para mejorar la herramienta (opcional).
Global setting: disabled
Local setting: No local workspace configuration file.
Effective status: disabled
? Which stylesheet system would you like to use?
❯ CSS [ https://developer.mozilla.org/docs/Web/CSS ]
Tailwind CSS [ https://tailwindcss.com ]
Sass (SCSS) [ https://sass-lang.com/documentation/syntax#scss ]
Sass (Indented) [ https://sass-lang.com/documentation/syntax#the-indented-syntax ]
Less [ http://lesscss.org ]
✔ Which stylesheet system would you like to use? CSS [ https://developer.mozilla.org/docs/Web/CSS ]
☝️ Aquí Angular te está preguntando qué sistema de estilos quieres usar en el proyecto (preferencia CSS).
? Do you want to enable Server-Side Rendering (SSR) and Static Site Generation (SSG/Prerendering)? (y/N)
No
☝️ Aquí Angular te está preguntando si quieres habilitar SSR (Server-Side Rendering) y SSG (Static Site Generation) en tu proyecto.
¿Qué elegir?
Proyecto normal / aprendizaje / dashboard / SPA
👉 N (No) ← recomendado
Sitio público con SEO importante (landing, blog, marketing)
👉 Y (Sí)
✔ Do you want to enable Server-Side Rendering (SSR) and Static Site Generation (SSG/Prerendering)? No
? Which AI tools do you want to configure with Angular best practices?
https://angular.dev/ai/develop-with-ai
❯ ◉ None
◯ Agents.md [ https://agents.md/ ]
◯ Claude [ https://docs.anthropic.com/en/docs/claude-code/memory ]
◯ Cursor [ https://docs.cursor.com/en/context/rules ]
◯ Gemini [ https://ai.google.dev/gemini-api/docs ]
◯ GitHub Copilot [ https://code.visualstudio.com/docs/copilot/copilot-customization ]
◯ JetBrains AI [ https://www.jetbrains.com/help/junie/customize-guidelines.html ]
Which AI tools do you want to configure with Angular best practices?
https://angular.dev/ai/develop-with-ai None
☝️ Ese paso solo sirve para generar archivos de configuración con buenas prácticas de Angular para herramientas de IA específicas (reglas, contexto del proyecto, convenciones, etc.)
CREATE first-angular-app/README.md (1468 bytes)
CREATE first-angular-app/.editorconfig (314 bytes)
CREATE first-angular-app/.gitignore (604 bytes)
CREATE first-angular-app/angular.json (1936 bytes)
CREATE first-angular-app/package.json (964 bytes)
CREATE first-angular-app/tsconfig.json (957 bytes)
CREATE first-angular-app/tsconfig.app.json (429 bytes)
CREATE first-angular-app/tsconfig.spec.json (441 bytes)
CREATE first-angular-app/.vscode/extensions.json (130 bytes)
CREATE first-angular-app/.vscode/launch.json (470 bytes)
CREATE first-angular-app/.vscode/tasks.json (938 bytes)
CREATE first-angular-app/src/main.ts (222 bytes)
CREATE first-angular-app/src/index.html (301 bytes)
CREATE first-angular-app/src/styles.css (80 bytes)
CREATE first-angular-app/src/app/app.css (0 bytes)
CREATE first-angular-app/src/app/app.spec.ts (684 bytes)
CREATE first-angular-app/src/app/app.ts (299 bytes)
CREATE first-angular-app/src/app/app.html (20104 bytes)
CREATE first-angular-app/src/app/app.config.ts (313 bytes)
CREATE first-angular-app/src/app/app.routes.ts (77 bytes)
CREATE first-angular-app/public/favicon.ico (15086 bytes)
✔ Packages installed successfully.
4. Estructura base del proyecto
Angular genera más archivos que React, pero cada uno cumple una función clara.
1
2
3
4
5
6
7
8
9
10
11
src/
├── app/
│ ├── app.component.ts
│ ├── app.component.html
│ ├── app.component.scss
│ ├── app.module.ts
│ └── app-routing.module.ts
├── assets/
├── environments/
├── index.html
└── main.ts
Claves importantes:
app.module.tsPunto de ensamblaje de la aplicación.app-routing.module.tsNavegación centralizada.main.tsBootstrap de Angular, equivalente almain.jsxen React.
5. Levantar el servidor de desarrollo
1
2
cd angular-app
ng serve
Por defecto:
1
http://localhost:4200
Angular recompila en caliente y mantiene el estado cuando es posible.
6. Organización inicial recomendada
Antes de escribir código, conviene ordenar el proyecto.
Dentro de app/:
1
2
3
4
5
6
7
8
9
10
11
12
13
app/
├── core/
│ ├── services/
│ ├── guards/
│ └── interceptors/
├── shared/
│ ├── components/
│ ├── pipes/
│ └── directives/
├── pages/
│ ├── home/
│ └── login/
└── app.module.ts
- core/ → lógica transversal (una sola vez)
- shared/ → reutilizable
- pages/ → vistas de routing
Esto evita el clásico “todo en components”.
7. Generación de componentes (forma correcta)
Angular no espera que escribas archivos a mano.
Ejemplo:
1
ng g c pages/home
Angular crea:
- componente
- template
- estilos
- archivo de pruebas
Y además registra automáticamente lo necesario.
8. Routing básico
En app-routing.module.ts:
1
2
3
4
const routes: Routes = [
{ path: '', component: HomeComponent },
{ path: 'login', component: LoginComponent },
];
Angular maneja el routing de forma declarativa y predecible. Nada de wrappers ni hooks externos.
9. Servicios y consumo de APIs
Angular separa claramente vista y lógica.
Generar servicio:
1
ng g s core/services/api
Uso básico:
1
2
3
4
5
constructor(private http: HttpClient) {}
getUsers() {
return this.http.get('/api/users');
}
Aquí aparece uno de los pilares de Angular: inyección de dependencias real, no simulada.
10. Formularios: por qué usar Reactive Forms
Angular ofrece dos caminos, pero para proyectos reales:
- Template Forms → simples
- Reactive Forms → recomendados
Ejemplo base:
1
2
3
4
this.form = this.fb.group({
email: ['', [Validators.required, Validators.email]],
password: ['', Validators.required],
});
Esto da:
- validaciones explícitas
- control total del estado
- testeo real
11. UI y diseño
Angular no impone librerías visuales, pero Angular Material es la opción más coherente.
1
ng add @angular/material
Ventajas:
- accesibilidad integrada
- componentes consistentes
- temas configurables
📷 Imagen sugerida aquí
Tipo: screenshot de UI Contenido: Angular Material (botones, toolbar, card) Uso: mostrar coherencia visual, no código
12. Build de producción
1
ng build
Salida:
1
dist/angular-app/
Optimizado, minificado y listo para desplegar.
Cierre
Angular no es “más difícil”, es más estructurado. Si el proyecto es grande, con equipos, reglas y crecimiento a largo plazo, Angular reduce fricción donde otros stacks la aumentan.
Este setup deja una base:
- mantenible
- escalable
- alineada con prácticas reales
Sin ruido innecesario.
Si quieres, el siguiente post puede ser:
- Angular + arquitectura por dominios
- Angular + Auth JWT
- Angular vs React (desde experiencia real, no marketing)
- Setup Angular para backend Java / Spring
Tú dime el siguiente paso y lo escribimos con el mismo nivel.

