<aside> 💡 Para crear un modulo puedes utilizar ng g m name o ng g m name —routing para generarlo con el archivo de router

</aside>

Angular se estructura mediante módulos que pueden estar compuestos por componentes, servicios, pipes, directivas y un archivo de router que nos ayuda con la navegación.

El archivo corazón de un modulo es module.ts o con apellido si pertenece a un submódulo. Este archivo nos sirve para integrar los elementos que se van a utilizar en el modulo. Las importaciones pueden ser de elementos propios o de importaciones de los elementos del paquete de @angular.

Los componentes que hacen parte de una página en particular se pueden encapsular en un mismo módulo.

Existe varias técnicas sugerida por la documentación de Google para angular entre esas es fragmentar la app por módulos esto con el fin de que sea mas entendible y que cada fragmento tenga su responsabilidad.

Cuando se realiza esta técnica, normalmente se crean dos módulos que son transversales en la app como son:

un archivo module se identifica por el decorador @NgModule del paquete del @angular/core

import { NgModule } from '@angular/core';

@NgModule({
  declarations: [ "componentes propios del modulo"],
  imports: [ "importaciones de modulos externos o del archivo de rutas"],
	exports: [ " Modulos declarados que pueden ser consumidos por otros modulos"
  providers: [],
  bootstrap: ["componente de arranque normalmente solo esta en el modulo principal"]
})
export class AppModule { }

al exportar la clase typeScript puede ejecutar la clase desde otros lugares, Normalmente es regla que todas las clases tenga el export sobre todo en los módulos.