首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >依赖关系@ng-bootstrap/ng-bootstrap必须显式为白名单

依赖关系@ng-bootstrap/ng-bootstrap必须显式为白名单
EN

Stack Overflow用户
提问于 2018-05-12 21:23:10
回答 2查看 19.5K关注 0票数 31

angular 6项目中,我使用angular cli命令ng g lierary @some/libName创建了angular库。在我的库中,我有一个需要@ng-bootstrap/ng-bootstrap的组件,所以我通过npm i --save @ng-bootstrap/ng-bootstrap添加了它。

当我尝试使用ng build @some/libName --prod命令构建这个库时,它抛出了下面的错误。

代码语言:javascript
复制
Dependency @ng-bootstrap/ng-bootstrap must be explicitly whiteliste

有人解决了吗?

EN

回答 2

Stack Overflow用户

发布于 2018-05-19 22:17:59

更新

此警告来自ng-packagr (and there's now a section of the ng-packagr docs about this)。事实证明,ng-packagr只是告诉您,它希望您将所有依赖项添加到ng-package.json中的"allowedNonPeerDependencies": []属性(此选项过去称为"whitelistedNonPeerDependencies")。例如:

代码语言:javascript
复制
{
  "allowedNonPeerDependencies": [
    "tslib",
    ...
  ]
}

原创

我自己也遇到了这个。我认为这个警告来自ng-packagr ( angular-cli依赖它来生成和打包库)。我不太确定他们所说的“白名单”是什么意思,因为在ng-packagr的文档中似乎没有直接解释这种说法,但是this issue in the ng-packagr repo有很多不同的方法来解决这个问题。

  1. 对等体(如Angular、RxJS):在此用例中,第三方依赖项是您的库的peerDependency。您的库的用户需要将您的库和第三方库都包含在他们的依赖项section.
  2. Embedding中(例如,遗留JS库):您有一个遗留JavaScript库(例如,专有后端的适配器),并且您希望(需要)将遗留代码嵌入到您的库中。在这种情况下,第三方依赖项是您的库的devDependency,并将嵌入到您的library.
  3. Mixed模式嵌入&同级包中(例如,UX guidelines,Angularized ):在此用例中,第三方依赖项是一个peerDependency,但也(部分)嵌入到您的库中。您可能希望重用库中来自第三方库的现有CSS/SCSS/LESS样式表,从而在库中“嵌入”来自第三方的代码。同时,第三方依赖项也是库的peerDependency。

The github issue有更多关于这方面的信息。

票数 57
EN

Stack Overflow用户

发布于 2018-12-05 17:05:32

ng-package.json中添加了这个,它对我很有效

代码语言:javascript
复制
{
  "$schema": "./node_modules/ng-packagr/ng-package.schema.json",
  "lib": {
    "entryFile": "public_api.ts"
  },
  "whitelistedNonPeerDependencies": [
    "."
  ]
}
票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50306714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档