Зависимость @ ng-bootstrap / ng-bootstrap должна быть явно белым списком - PullRequest
0 голосов
/ 12 мая 2018

В проекте angular 6 я создал угловую библиотеку, используя команду angular cli ng g lierary @some/libName. В моей библиотеке есть компонент, которому требуется @ng-bootstrap/ng-bootstrap, поэтому я добавил его npm i --save @ng-bootstrap/ng-bootstrap.

Когда я пытаюсь собрать библиотеку с помощью команды ng build @some/libName --prod, она выдает ошибку ниже.

Dependency @ng-bootstrap/ng-bootstrap must be explicitly whiteliste

Кто-нибудь решил это?

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Добавил это в ng-package.json, и у меня это сработало

{
  "$schema": "./node_modules/ng-packagr/ng-package.schema.json",
  "lib": {
    "entryFile": "public_api.ts"
  },
  "whitelistedNonPeerDependencies": [
    "."
  ]
}
0 голосов
/ 19 мая 2018

Обновление

Это предупреждение исходит от ng-packagr. Оказывается, ng-packagr просто говорит вам, что хочет, чтобы вы добавили все зависимости к свойству "whitelistedNonPeerDependencies": [] в ng-package.json. Например:

{
  "whitelistedNonPeerDependencies": [
    "tslib",
    ...
  ]
}

Оригинал * * 1013 Просто столкнулся с этим сам. Это предупреждение исходит от ng-packagr Я думаю (что angular-cli использует для генерации и упаковки библиотек). Я не совсем уверен, что они подразумевают под «белым списком», так как это выражение, по-видимому, не объясняется напрямую в документах ng-packagr, но эта проблема в репозитории ng-packagr имеет массу различные варианты решения проблемы. Peers (например, Angular, RxJS): в этом случае использования сторонняя зависимость является peerDependency вашей библиотеки. Пользователям вашей библиотеки необходимо включить как свою библиотеку, так и стороннюю библиотеку в свой раздел зависимостей. Встраивание (например, унаследованные библиотеки JS): у вас есть устаревшая библиотека JavaScript (например, адаптер для проприетарного бэкэнда), и вы хотите (должны) встроить унаследованный код в вашу библиотеку. В этом случае сторонняя зависимость является devDependency вашей библиотеки и будет встроена в комплект вашей библиотеки. Смешанный режим - встроенный и одноранговый (например, рекомендации по UX, Angularized styleguide): в этом случае использования сторонняя зависимость является peerDependency, но также (частично) встроена в вашу библиотеку. Возможно, вы захотите повторно использовать существующие таблицы стилей CSS / SCSS / LESS из сторонней библиотеки в вашей библиотеке, таким образом «встраивая» код стороннего разработчика в вашу библиотеку. В то же время сторонняя зависимость - это peerDependency вашей библиотеки. В выпуске github есть дополнительная информация по этому вопросу.

...