2017-08-12 178 views
58

我刚刚创建了一个全新的项目
npm install [email protected] jquery popper.js --save
,改变了.angular-cli.json的相关部件如下Bootstrap4依赖PopperJs抛出错误对角

"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" 
    ], 

然而,收到以下错误

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 

任何想法如何解决它?

在此先感谢...

+0

奇怪,我找到了它为我工作。你使用最新的cli吗?你可以尝试重新安装node_modules – LLai

+1

错误必须在其他地方 – brijmcq

+0

@LLai'@ angular/cli:1.3.0 node:6.11.2 npm:5.3.0'你是否更改过**中的部分:angular-cli.json * *如果你没有,你将不会在控制台中看到错误。 – cilerler

回答

133

如果你看一下引导页面(http://getbootstrap.com/)中可以看出,他们进口了以下内容:

https://code.jquery.com/jquery-3.2.1.slim.min.js 
https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js 
https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js 

注意命名: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" 
     ], 

之后,它似乎现在的工作。

+0

你在jQuery包的packages.json中有什么?在我的node_modules jquery文件夹中,我没有jquery.slim.min.js。其实只是发现它在jquery 3.2.1 – lankyplanks

+2

我的package.json看起来如下jquery: '“jquery”:“^ 3.2.1”' 我已经testet与完整的jquery版本,它似乎工作也。 只有** umd **/popper.min.js似乎是必需的。 –

+0

正如你所说......“jquery”:“^ 3.2.1”效果很好 – lankyplanks

0

我有同样的问题,并吸...但如果你直接导入上的index.html头部标签,就像bootrstrap说的,不与NPM ......你获得好的结果。那不会抛出问题......但只是一个补丁。但是,如果用户没有互联网,是另一个历史。

1

我可以看到很多人都在努力添加并正确包含Bootstrap 4依赖项(jQuery,popper.js等)。但是以https://ng-bootstrap.github.io的形式有一个更简单的解决方案。

ng-bootstrap提供原生角度指令从头开始编写。阳性结果是: *您并不需要包括和担心jQuery的,popper.js等 *指令提供的API,“意义”的角度世界

对于任何人试图利用引导4 .beta与角 - NG-引导刚刚发布了其第一个测试版是与引导4.beta CSS完全兼容

+0

如果您使用的是Angular,但是如果您使用的是AngularJS,则会更容易... –

+1

嗯,问题是关于Angular和angular-cli所以不知道为什么AngularJS会被带到这里...... –

19

我有同样的问题。我的解决方案是而不是导入dist文件夹(./node_modules/popper.js/dist/popper.js),而是umd文件夹(./node_modules/popper.js/dist/ udd/popper。 JS)。如果您获得js文件的最小或普通版本,则无关紧要。