Búsqueda de sitios web

typescript - Importación dinámica de módulos dentro de un paquete de biblioteca de Angular 6


Estoy trabajando en una biblioteca de Angular con muchos módulos y componentes, uno de ellos es un sistema de carga de plugins.

La forma en que funciona el sistema de carga de complementos se basa en la suposición de que el proyecto que lo importa (a través de npm) contendrá un directorio "plugins" con un archivo "index.ts" en su raíz y el servicio de carga de complementos importará los componentes que sean exportados por index.ts.

Estoy usando la sintaxis de importación dinámica de módulos - la declaración asíncrona import('...'), que funciona perfectamente cuando apunta a un archivo que existe físicamente allí, pero dicho archivo no existirá en el momento en que esté compilando/publicando mi biblioteca, solo existirá en una etapa posterior, dentro del proyecto que la utiliza.

¿Cómo puedo 'engañar' al compilador de Angular para empaquetar la biblioteca sin la existencia de un módulo ../../plugins y en su lugar obtener los plugins en tiempo de ejecución?

Respuesta #1

Puedes usar un cargador de módulos dinámico, como System.JS.

Vea esta pregunta para una implementación similar:

Cargar nuevos módulos dinámicamente en tiempo de ejecución con Angular CLI y Angular 5