Angular Конфигурация пути к параметрам компилятора - PullRequest
0 голосов
/ 06 мая 2020

Я создаю библиотеку angular (сгенерированную через cli). Структура выглядит так для нескольких точек входа

-projects
 -my-lib
  -src
   -lib
    -components-type-x
     -component-1
      -index.ts
      -public-api.ts
      -...
    -pubic-api.ts
   -ng-package.json
   -package.json
   -tsconfig.lib.json
   -tsconfig.lib.prod.json

Остальное похоже на обычный angular проект. У меня проблема с настройкой путей, используемых compileroptions.

То, что я получаю при попытке собрать библиотеку

Building entry point '@xx/my-lib'
Building entry point '@xx/my-lib/src/lib/components-x/component-1'

Я хочу видеть

Building entry point '@xx/my-lib'
Building entry point '@xx/my-lib/components-x/component-1'

Пробовали изменить пути либо в tsconfig. json проекта sr c, но также и в tsconfig.lib. json вот так, но ничего.

"paths": {
  "@xx/my-lib": ["projects/my-lib/src/lib/public-api.ts"],
  "@xx/my-lib/*": ["projects/my-lib/src/lib/*/public-api.ts"]
}

"paths": {
  "@xx/my-lib": ["dist/my-lib"],
  "@xx/my-lib/*": ["dist/my-lib/*"]
}

Что я здесь скучаю?

1 Ответ

0 голосов
/ 06 мая 2020

Вы можете добавить дополнительный путь, указывающий на папку src / lib. И в каждой папке компонентов создайте index.ts, который экспортирует все из publi c -api.ts.

tsconfig. json:

"paths": {
  "@xx/my-lib": ["projects/my-lib/src/lib/public-api.ts"],
  "@xx/my-lib/*": ["projects/my-lib/src/lib/*"]
}

components-1 / index. .ts:

export * from './public-api';

components-1 / publi c -api.ts:

export * from './test.module';
export * from './test.component';

Теперь импорт компонента должен выглядеть следующим образом:

import { Component1} from '@xx/my-lib/components-x/component-1'

Структура каталогов:

- projects
 - my-lib
  - src
   - lib
    - components-x
     - components-1
      - index.ts
      - public-api.ts
      - ... component files

Вот ссылка на образец репозитория

https://github.com/hildegunstvonmythenmetz/ts-library-imports

Пожалуйста, обратите внимание на импорт компонента модуля в модуле приложения.

...