添加@ ng-bootstrap/ng-bootstrap到anguar cli库抛出错误"必须明确列入白名单"

Ani*_*Das 12 ng-bootstrap angular6 angular-cli-v6

我正在创建一个角度6项目和一个库使用angular 6.在我的库中,我有一个需要的组件,angular cli所以我添加了它ng g lierary @some/libName.

当我尝试使用命令构建库时,@ng-bootstrap/ng-bootstrap它会抛出以下错误.

Dependency @ng-bootstrap/ng-bootstrap must be explicitly whiteliste
Run Code Online (Sandbox Code Playgroud)

有没有人解决过它?

Joh*_*ohn 25

更新

这个警告来自ng-packagr.结果ng-packagr只是告诉你,它希望你将所有依赖项和devDependencies添加到"whitelistedNonPeerDependencies": []属性中ng-package.json.例如:

{
  "whitelistedNonPeerDependencies": [
    "tslib",
    ...
  ]
}
Run Code Online (Sandbox Code Playgroud)

原版的

刚碰到这个.这个警告来自ng-packagr我认为(angular-cli依赖于生成和打包库).我不完全确定"白名单"是什么意思,因为这个措辞似乎没有在ng-packagr的文档中直接解释,但ng-packagr repo中的这个问题对于如何工作有很多不同的选择围绕这个问题.

  1. 对等方(例如Angular,RxJS):在此用例中,第三方依赖项是库的peerDependency.您的库的用户需要在其依赖项部分中包含您的库和第三方库.
  2. 嵌入(例如遗留JS库):您有一个遗留的JavaScript库(例如,专有后端的适配器),并且您希望(需要)将遗留代码嵌入到库中.在这种情况下,第三方依赖项是库的devDependency,并将嵌入到库的包中.
  3. 混合模式 - 嵌入式和对等(例如UX准则,Angularized styleguide):在此用例中,第三方依赖是peerDependency,但也(部分)嵌入到库中.您可能希望重新使用库中第三方库中的现有CSS/SCSS/LESS样式表,从而"嵌入"库中第三方的代码.同时,第三方依赖项是库的peerDependency.

github问题有更多信息.


Zoh*_*Ali 8

添加了ng-package.json它,它对我有用

{
  "$schema": "./node_modules/ng-packagr/ng-package.schema.json",
  "lib": {
    "entryFile": "public_api.ts"
  },
  "whitelistedNonPeerDependencies": [
    "."
  ]
}
Run Code Online (Sandbox Code Playgroud)