ng-bootstrap - 依赖@ng-bootstrap/ng-bootstrap 必须明确列入白名单
问题描述
在项目中,我使用命令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-packagr
(现在有一部分关于此的 ng-packagr 文档)。结果ng-packagr
只是告诉你它希望你将所有依赖项添加到一个"allowedNonPeerDependencies": []
属性中ng-package.json
(这个选项曾经被称为"whitelistedNonPeerDependencies"
)。例如:
{
"allowedNonPeerDependencies": [
"tslib",
...
]
}
原来的
我自己也遇到了这个。这个警告来自ng-packagr
我认为(angular-cli 依赖于生成和打包库)。我不确定他们所说的“白名单”是什么意思,因为在 ng-packagr 的文档中似乎没有直接解释该措辞,但是ng-packagr 存储库中的这个问题对于如何工作有很多不同的选择围绕问题。
- Peers(比如 Angular、RxJS):在这个用例中,第三方依赖是你库的 peerDependency。您的库的用户需要在他们的依赖项部分中包含您的库和第三方库。
- 嵌入(例如遗留的 JS 库):您有一个遗留的 JavaScript 库(例如,专有后端的适配器)并且您希望(需要)将遗留代码嵌入到您的库中。在这种情况下,第三方依赖项是您的库的 devDependency 并将嵌入到您的库的捆绑包中。
- 混合模式 - 嵌入和对等(例如 UX 指南、Angularized 样式指南):在此用例中,第三方依赖项是 peerDependency,但也(部分)嵌入到您的库中。您可能希望在您的库中重用来自第三方库的现有 CSS/SCSS/LESS 样式表,从而在您的库中“嵌入”来自第三方的代码。同时,第三方依赖是你库的一个 peerDependency。
github问题对此有更多信息。
推荐阅读
- javascript - 地图和地图异步之间的区别
- docker - Apache Proxy 背后的 Gitlab-runner 交互式 Web 终端
- flutter - Flutter floatingActionButton 在模态底部(无脚手架)
- c++ - 从 QMake 到 CMake。(不同的路径级别)
- javascript - 使用 jQuery 在第一次单击时展开 div 并在第二次单击时淡出 div
- c# - 当 Windows 设置为英语区域格式时,空格字符的格式会很奇怪
- javascript - 使用 Javascript 在每个出现的实例上添加一个 div
- c++ - 我无法将 HSV 图像拆分为通道 (H,S,V)
- reactjs - Spfx React-jump-to-folder 的代码更改(des 中的链接)以更改 Doc 库文件夹的排序顺序
- javascript - 网站 gif 延迟/重叠