Сценарий:
Я создал пользовательскую библиотеку пользовательского интерфейса, используя ng-packagr
, экспортировал пользовательскую components
и некоторые классы моделей.
Проблема:
В главном проекте оператор import
отлично работает для экспортируемых компонентов, но не работает для экспортируемых классов, и webpack
не компилируется, выдавая ошибку:
модуль не найден, ошибка не может быть исправлена my-custom-library/models
Код проекта библиотеки:
Класс модели: src / app / modules / my-custom-module / models / my-model.ts
export class MyModel {
constructor() {
// default values for props here
}
// ...props here
}
Индексный файл: src / app / modules / my-custom-module / models / index.ts
export * from './my-model';
export * from './my-other-model';
Экспорт файла в корень: models.ts
export * from './src/app/modules/my-custom-module/models/index';
ng-packagr
файл в корне: public_api.ts
export * from './models';
export * from './src/app/modules/my-custom-module/my-custom-module.module';
export * from './src/app/modules/my-custom-module/components/index';
Основной код проекта:
import {MyCustomModule} from 'my-custom-library'; // works
import {MyModel} from 'my-custom-library'; // works
import {MyModel} from 'my-custom-library/models'; // does not works
Назначение:
Упрощение и разделение API библиотеки UI для конечных разработчиков.
Я полагаю, что я упускаю что-то в отображении разрешения модуля webpack
, потому что VS Code распознает import
, intellisense работает и даже Ctrl + Click
переходит к нужному файлу, но webpack
не удается выполнить компиляцию.
Git Issue