【问题标题】:Dependency @ng-bootstrap/ng-bootstrap must be explicitly whiteliste依赖@ng-bootstrap/ng-bootstrap 必须明确列入白名单
【发布时间】:2018-10-22 17:17:29
【问题描述】:

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

有人解决了吗?

【问题讨论】:

    标签: ng-bootstrap angular6 angular-cli-v6


    【解决方案1】:

    更新

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

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

    原创

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

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

    The github issue 有更多相关信息。

    【讨论】:

    • 您还需要将其添加到ng-package.prod.json,以便能够使用--prod 构建库。
    • 我只需要将dependencies 中的条目列入白名单,而不是devDependencies 中的条目
    • 该条目需要添加到 ng-package.json 中的 whitelistedNonPeerDependencies 数组中,而不是 package.json 中
    • 太棒了。这很简单而且很容易。提前致谢
    【解决方案2】:

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

    {
      "$schema": "./node_modules/ng-packagr/ng-package.schema.json",
      "lib": {
        "entryFile": "public_api.ts"
      },
      "whitelistedNonPeerDependencies": [
        "."
      ]
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-09-24
      • 2021-05-06
      • 1970-01-01
      • 1970-01-01
      • 2018-04-16
      • 2020-09-12
      • 1970-01-01
      相关资源
      最近更新 更多