En este tema, aprenderás cómo construir y desplegar aplicaciones Angular de manera eficiente. Este proceso es crucial para llevar tu aplicación desde el entorno de desarrollo hasta un entorno de producción donde los usuarios finales puedan acceder a ella.
- Preparación para la Construcción
1.1 Configuración del Archivo angular.json
El archivo angular.json
es el corazón de la configuración de tu proyecto Angular. Aquí puedes definir cómo se debe construir tu aplicación.
{ "projects": { "your-app-name": { "architect": { "build": { "options": { "outputPath": "dist/your-app-name", "index": "src/index.html", "main": "src/main.ts", "polyfills": "src/polyfills.ts", "tsConfig": "tsconfig.app.json", "assets": [ "src/favicon.ico", "src/assets" ], "styles": [ "src/styles.css" ], "scripts": [] } } } } } }
1.2 Configuración de Entornos
Angular permite definir configuraciones específicas para diferentes entornos (desarrollo, producción, etc.). Esto se hace en el archivo angular.json
y en los archivos de entorno (environment.ts
).
{ "projects": { "your-app-name": { "architect": { "build": { "configurations": { "production": { "fileReplacements": [ { "replace": "src/environments/environment.ts", "with": "src/environments/environment.prod.ts" } ], "optimization": true, "outputHashing": "all", "sourceMap": false, "extractCss": true, "namedChunks": false, "aot": true, "extractLicenses": true, "vendorChunk": false, "buildOptimizer": true } } } } } } }
- Construcción de la Aplicación
Para construir tu aplicación Angular, utiliza el comando ng build
. Este comando compila tu aplicación y la coloca en el directorio especificado en outputPath
.
2.1 Opciones de Construcción
--prod
: Construye la aplicación en modo producción.--aot
: Habilita la compilación anticipada (Ahead-of-Time).--output-hashing
: Agrega un hash a los nombres de los archivos de salida para el almacenamiento en caché.
- Despliegue de la Aplicación
3.1 Despliegue en un Servidor Web
Una vez que tu aplicación está construida, puedes desplegarla en cualquier servidor web. Los archivos generados en el directorio dist/your-app-name
son los que necesitas para el despliegue.
Ejemplo: Despliegue en Apache
- Copia los archivos del directorio
dist/your-app-name
a la carpeta raíz de tu servidor Apache. - Configura el archivo
.htaccess
para redirigir todas las solicitudes aindex.html
.
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L] </IfModule>
3.2 Despliegue en Firebase Hosting
Firebase Hosting es una opción popular para desplegar aplicaciones Angular.
- Instala Firebase CLI:
- Inicia sesión en Firebase:
- Inicializa Firebase en tu proyecto:
- Selecciona "Hosting" y sigue las instrucciones para configurar tu proyecto.
- Despliega tu aplicación:
3.3 Despliegue en GitHub Pages
GitHub Pages es otra opción para desplegar aplicaciones Angular.
- Instala
angular-cli-ghpages
:
- Construye tu aplicación:
- Despliega tu aplicación:
- Ejercicio Práctico
Ejercicio: Despliegue en Firebase Hosting
- Construye tu aplicación: Usa el comando
ng build --prod
. - Configura Firebase: Sigue los pasos para inicializar Firebase en tu proyecto.
- Despliega tu aplicación: Usa el comando
firebase deploy
.
Solución
- Construcción:
- Configuración de Firebase:
- Despliegue:
Conclusión
En esta sección, has aprendido cómo construir y desplegar aplicaciones Angular. Este proceso es esencial para llevar tu aplicación desde el desarrollo hasta la producción. Ahora estás listo para compartir tu aplicación con el mundo. En el próximo tema, exploraremos el control de versiones con Git, una herramienta fundamental para gestionar el código de tu proyecto.
Curso de Angular 2+
Módulo 1: Introducción a Angular
- ¿Qué es Angular?
- Configuración del Entorno de Desarrollo
- Tu Primera Aplicación Angular
- Arquitectura de Angular
Módulo 2: Conceptos Básicos de TypeScript
- Introducción a TypeScript
- Variables y Tipos de Datos en TypeScript
- Funciones y Funciones Flecha
- Clases e Interfaces
Módulo 3: Componentes y Plantillas
- Creación de Componentes
- Plantillas de Componentes
- Estilos de Componentes
- Interacción entre Componentes
Módulo 4: Directivas y Pipes
Módulo 5: Servicios e Inyección de Dependencias
- Introducción a los Servicios
- Creación y Uso de Servicios
- Inyección de Dependencias
- Inyectores Jerárquicos
Módulo 6: Enrutamiento y Navegación
Módulo 7: Formularios en Angular
- Formularios Basados en Plantillas
- Formularios Reactivos
- Validación de Formularios
- Formularios Dinámicos
Módulo 8: Cliente HTTP y Observables
- Introducción al Cliente HTTP
- Realizando Solicitudes HTTP
- Manejo de Respuestas HTTP
- Uso de Observables
Módulo 9: Gestión de Estado
- Introducción a la Gestión de Estado
- Uso de Servicios para la Gestión de Estado
- NgRx Store
- NgRx Effects