Как иметь только дополнительные точки входа в ng-packagr - PullRequest
1 голос
/ 23 января 2020

У меня есть библиотека CLI Angular, где каждый компонент должен импортироваться только через отдельные точки входа (например, Angular Материал):

import {Foo} from '@myLib/foo
import {Bar} from '@myLib/bar

Так что я не хочу основной записи укажите в конфиге ng-packagr.

У меня уже определены все вторичные точки входа, и я хочу удалить первичную точку входа, чтобы пользователи не могли просто " import {Bar} from '@ myLib ", но ng- пакет. json требует entryFile, и когда я оставляю entryFile пустым, я получаю сообщение об ошибке

ОШИБКА: внутренняя ошибка: не удалось получить символ для точки входа

У меня есть добавить хотя бы один действительный экспорт в entryFile.

Команда Angular Material, кажется, получила это право - https://github.com/angular/components/blob/master/src/material/index.ts

Любые идеи о том, как сделать это?

1 Ответ

0 голосов
/ 13 февраля 2020

Я не уверен, поддерживается ли этот сценарий.

Я использую ng-packagr для аналогичной настройки, и то, что работает (хотя и не идеально), выглядит следующим образом:

, если у вас следующая структура:

@mylib
├── src
|   ├── public_api.ts
|   └── *.ts
├── ng-package.json
├── package.json
└── foo
|   ├── src
|   |   ├── public_api.ts
|   |   └── *.ts
|   └── ng-package.json
└── bar
    ├── src
    |   ├── public_api.ts
    |   └── *.ts
    └── ng-package.json

если вы установите root пакет. json с именем области действия

{
  "name": "@myLib"
}

вы установите root ng-пакет. json на этот

{
  "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
  "dest": "../../dist/@myLib"
}

и поместите пустой экспорт объекта в ваш основной public_api.ts (то есть /src/public_api.ts)

export default {};

, тогда вы должны получить искомую структуру

надеюсь, это поможет

...