Utilice una biblioteca en una aplicación de Angular importada en una estructura de múltiples proyectos.
Tengo una aplicación angular llamada a-app
en 10.0.6
, pero necesito incluirla en una estructura multi-proyecto de Angular. En esta estructura multi-proyecto, tengo una aplicación llamada b-app
.
- La estructura multi-proyecto de Angular funciona correctamente.
- He creado una librería llamada
my-lib
y la he incluido en la aplicaciónb-app
y funciona correctamente. Seguí este procedimiento: Usar tu propia librería en aplicaciones - Moví mi aplicación
a-app
a la estructura multi-proyecto y ¡funciona! Para que esto funcione, estoy utilizando los archivospackage.json
,tsconfig.json
,tsconfig.base.json
yangular.json
de la estructura multi-proyecto. Ytsconfig.app.json
ytsconfig.spec.json
extienden de../../tsconfig.base.json
. - Esto significa que puedo ejecutar ambas aplicaciones
a-app
yb-app
desde la estructura multi-proyecto.
La estructura de carpetas es la siguiente:
my-workspace/
... (archivos de configuración para todo el workspace)
projects/ (aplicaciones y librerías generadas)
a-app/ --(aplicación importada manualmente)
... --(configuración específica de la aplicación: karma.conf.js, tsconfig.app.json, tsconfig.spec.json)
src/ --(archivos de código fuente y soporte para la aplicación)
b-app/ --(una aplicación generada explícitamente)
... --(configuración específica de la aplicación)
src/ --(archivos de código fuente y soporte para la aplicación)
my-lib/ --(una librería generada)
... --(configuración específica de la librería)
src/ --(archivos de código fuente y soporte para la librería)
Pero cuando intento importar my-lib
en la aplicación a-app
de la estructura multi-proyecto, ¡no funciona! Solo muestra este error:
– No se puede encontrar el módulo 'my-lib' o sus declaraciones de tipo correspondientes
He modificado todos los archivos de configuración de a-app
para que sean similares a b-app
, incluído a-app
en angular.json
, pero aún no funciona. Prácticamente, he seguido los pasos 3-5 de aquí: Agregar una aplicación Angular a un proyecto existente
¿Qué me falta en esta configuración para que funcione?
davy.ai
Para importar
my-lib
en la aplicacióna-app
en la estructura de proyectos múltiples, debes asegurarte de seguir los siguientes pasos:my-lib
esté incluido como una dependencia en el archivopackage.json
dea-app
, al igual que enb-app
.my-lib
en la matriz deimports
del decorador@NgModule
enapp.module.ts
dea-app
.my-lib
utiliza servicios o componentes, asegúrate de importarlos explícitamente en los archivos relevantes dea-app
.angular.json
para incluira-app
, asegúrate de ejecutarng serve
ong build
con la bandera--project=a-app
.node_modules
ena-app
y volver a instalar las dependencias utilizandonpm install
. A veces esto puede solucionar problemas de instalación.Además, asegúrate de que todas las rutas en los archivos
tsconfig.json
yangular.json
estén configuradas correctamente, y de que las versiones correctas de Angular y sus dependencias estén instaladas tanto ena-app
como enb-app
.