处理关于Bootstrap的未满足的对等依赖关系的NPM警告'当他们没有在Angular中使用时

时间:2018-04-09 11:35:28

标签: angular twitter-bootstrap npm bootstrap-4 yarnpkg

我在我的网络项目中使用Angular 5.2.0和Bootstrap 4。我通过npm i bootstrap --save安装了bootstrap 4,它告诉我有关未满足的对等依赖项:

npm WARN bootstrap@4.0.0 requires a peer of jquery@>=3.0.0 but none was installed.
npm WARN bootstrap@4.0.0 requires a peer of popper.js@^1.11.0 but none was installed.

当然,Bootstrap的JS依赖于这些对等的依赖关系。到目前为止,这么平常。

问题是:我没有使用任何Bootstraps JS。我正在使用ng-bootstrap,这是为Angular重写的Bootstrap组件。

这个警告让我感到很恼火,因为当我不使用它时(这个项目中没有其他人应该 - 在尝试使用Bootstrap的组件时出错),这真的不是什么事情。本地就很好)。清洁代码和依赖项不应输出任何警告。

为了摆脱这个警告,我尝试了不同的方法:

  • 找一个只包含Bootstrap的SCSS的npm-package。 There is at least one但它仍然使用Bootstrap的版本3.此外,没有办法告诉,当这些软件包更新时,我更喜欢使用原始的bootstrap软件包。
  • 只需安装依赖项而不使用它们。这会导致package.json中未使用的依赖项 - 并且在清洁代码环境中也应避免(imho)。< / LI>
  • 使纱线/ npm的警告静音(我最近切换到纱线,但错误类似)。可能不是一个好主意,警告通常很有用......似乎也是consensus,那个人不应该关掉特定的警告。我有点同意。
    • 忽略它们。对我来说不是一个选择 - 如上所述,干净的构建过程不应该返回警告。

所以:有没有办法以干净的方式处理这些对等依赖警告?

2 个答案:

答案 0 :(得分:1)

Sadly, the real answer is that we need to just ignore the warnings.

The creator of ng-bootstrap explicitly states that the warnings are our only option due to technical reasons in this answer上起作用。他们还提到您不应该安装 loadFiles = async () => { this.setState({ pages: [] }); const { pageNumbersToLoad, pathInfo: { pdfDir, pdfRootDir } } = this.props; const fullDirPath = path.join(pdfRootDir, pdfDir); const pdfPath = path.join(fullDirPath, pdfDir + ".pdf"); **const seg = fs.readFile(...);** 或{{1 }}由于潜在冲突(per the setup docs)而导致的依赖性。

答案 1 :(得分:0)

您可以简单地在index.html中放置一个链接

index.html

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">

我的解决方案是下载bootstrap.min.css并将其加载到资产文件夹中。然后我只在下面的两个文件中调用它(不是两个)

styles.css

@import url('./assets/bootstrap/bootstrap.min.css')

OR

angular.json

"styles": [
  "src/styles.css", 
  "src/assets/bootstrap/bootstrap.min.css"
],