Sé cómo construir mi proyecto con Angular CLI: ng build --prod
¿Cómo puedo compilar cada módulo por separado? Este es mi proyecto:
AnagAccreditamento
y cruscottofiliera
son módulos separados, con su archivo module.ts
, routing.module.ts
. ¿Cómo puedo compilarlos por separado e insertarlos en mi proyecto en un momento posterior como si fueran bibliotecas?
No estoy seguro acerca de angular2, pero "podría" (!) Definitivamente hacer esto con angular 10. No estoy seguro de si es la forma correcta de hacerlo (o si una mayor separación sería una buena idea).
Para lograr la construcción de múltiples módulos a partir de un solo proyecto:
Obviamente necesitas varios módulos. Entonces, no solo app.module.ts
sino otro que contiene elementos de configuración de modelos similares, es decir, llamado app-extension.module.ts
.
En consecuencia, necesitará otro archivo main.ts
, que haga referencia al módulo. Es decir, llamado main-extension.ts
. Importa el módulo específico allí y lo inicia.
Lo mismo para tsconfig.app.json
-> tsconfig.app-extension.json
A continuación, en su archivo angular.json
, puede extender el proyecto -> arquitecto -> sección de compilación agregando algo como esto:
"configurations": { "extension": { "main": "src/main-extension.ts", "tsConfig": "tsconfig.app-extension.json", "outputPath": "../resources/public/extension" }
finalmente dentro de su package.json
agrega un nuevo script
"build:extension": "ng build && ng build --output-hashing none --configuration extension "
el --output-hashing none no es realmente relevante aquí. Hice esto para crear un módulo de elementos personalizado/componentes web para uso independiente, por eso lo dejé aquí. El siguiente paso sería concatenar. Una mejor alternativa probablemente sea usar https://github.com/manfredsteyer/ngx-build-plus#readme para ese propósito.
para compilar, simplemente ejecute npm run build:extension
Si desea poder extraer módulos a medida que se necesitan, desea una carga diferida. Puede averiguar cómo usar la carga diferida aquí: https://angular.io/docs/ts/latest/guide/router.html#!#asynchronous-routing
O hay un curso de Pluralsight al respecto aquí: https://app.pluralsight.com/library/courses/angular-routing/table-of-contents