Bootstrap4依赖关系PopperJs在Angular上抛出错误

cil*_*ler 93 twitter-bootstrap webpack angular popper.js

我刚刚创建了一个全新的项目
并运行npm install bootstrap@4.0.0-beta jquery popper.js --save
并更改了.angular-cli.json的相关部分,如下所示

  "styles": [
    "../node_modules/bootstrap/dist/css/bootstrap.css"
  ],
  "scripts": [
    "../node_modules/jquery/dist/jquery.js",
    "../node_modules/popper.js/dist/popper.js",
    "../node_modules/bootstrap/dist/js/bootstrap.js"
  ],
Run Code Online (Sandbox Code Playgroud)

但是接收到以下错误

10:2287 Uncaught SyntaxError: Unexpected token export
    at eval (<anonymous>)
    at webpackJsonp.../../../../script-loader/addScript.js.module.exports (addScript.js:9)
    at Object.../../../../script-loader/index.js!../../../../popper.js/dist/popper.js (popper.js?4b43:1)
    at __webpack_require__ (bootstrap 4403042439558687cdd6:54)
    at Object.2 (scripts.bundle.js:66)
    at __webpack_require__ (bootstrap 4403042439558687cdd6:54)
    at webpackJsonpCallback (bootstrap 4403042439558687cdd6:25)
    at scripts.bundle.js:1
Run Code Online (Sandbox Code Playgroud)

任何想法如何解决它?

提前致谢...

Mar*_*uer 219

查看https://getbootstrap.com/docs/4.2/getting-started/introduction/#js上的文档,您可以看到它们导入以下内容:

<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
Run Code Online (Sandbox Code Playgroud)

注意命名:jquery.苗条 .min.js,umd /popper.min.js!

因此,我用我的下面.angular-cli.json:

      "styles": [
        "../node_modules/bootstrap/dist/css/bootstrap.css"
      ],
      "scripts": [
        "../node_modules/jquery/dist/jquery.slim.min.js",
        "../node_modules/popper.js/dist/umd/popper.min.js",
        "../node_modules/bootstrap/dist/js/bootstrap.min.js"
      ],
Run Code Online (Sandbox Code Playgroud)

之后它似乎现在起作用了.

  • 使用jQuery-slim与否无关紧要,但使用umd-version的popper.js修复它,谢谢! (4认同)
  • 我的package.json对于jquery看起来如下:`"jquery":"^ 3.2.1"`我也用完整的jquery版本测试它,它似乎也可以工作.只有**umd**/popper.min.js似乎是必要的. (2认同)
  • 这个答案有76个赞成...开发人员给了一个讽刺的"RTFM"/接近Github问题同样的问题 (2认同)
  • 在popper依赖中使用`/ dist/umd`而不是`/ dist`就可以了.谢谢. (2认同)

小智 50

我有同样的问题.我的解决方案是导入dist文件夹(./node_modules/popper.js/dist/popper.js),而是导入umd文件夹(./node_modules/popper.js/dist/ umd /popper.js).如果你得到js文件的迷你或普通版本无关紧要.