Я создал образец библиотеки Angular 6 с угловым кликом
- ng new test-lib
- ng g библиотека my-lib
Это дает мне базовую структуру с угловой библиотекой "my-lib" и примером приложения "test-lib", которое, я думаю, можно использовать для целей тестирования.
Внутри библиотеки я хочу использовать динамическийимпорт.У меня есть класс, который нужно импортировать лениво:
export class Lazy {
print(): void {
console.log('I am lazy');
}
}
И у меня есть потребительский компонент:
export class MyLibComponent implements OnInit {
async ngOnInit() {
const lazyImport = await import(/* webpackChunkName: 'lazy' */ './lazy');
new lazyImport.Lazy().print();
}
}
Это более или менее об этом.Я использую «ng build my-lib» для компиляции библиотеки в папку dist.В tsconfig я изменил «модуль» на esnext, чтобы поддерживать динамический импорт.
Теперь я хочу использовать библиотеку внутри примера приложения, которая была сгенерирована cli.Поэтому внутри app.module.ts я импортирую модуль библиотеки, а в шаблоне app.component.ts добавляю соответствующий селектор.
Когда я сейчас создаю пример приложения с помощью «ng build» или начинаю с «ng serve», я вижу, что «lazy chunk» не генерируется.Это просто обычные main, polyfills, runtime, styles и vendor.Что мне не хватает?Разве невозможно использовать динамическую загрузку внутри библиотеки?
Когда я изменяю путь импорта внутри app.module.ts из скомпилированной папки dist
import { MyLibModule } from 'my-lib';
в библиотекиИсходный код
import { MyLibModule } from '../../projects/my-lib/src/public_api';
Создан ленивый блок get и все работает как положено.Но это, конечно, не то, что я хочу.Я хочу использовать скомпилированную библиотеку внутри совершенно другого проекта, где я не могу импортировать из источников машинописного текста.
Редактировать: Краткое изложение моей проблемы
Может ли библиотека сама выполнять динамическую загрузку или эта функция работает только для main-app для отложенной загрузки других частейприложения или дополнительных библиотек?!
Редактировать: Причина вопроса
Моя библиотека состоит из сотен сгенерированных классов машинописи.На случай использования требуется только несколько.Они должны быть загружены по требованию.
Спасибо за вашу помощь!
Stephan