Bootstrap4の依存関係PopperJsがAngularでエラーをスローする


95

新しいブランドを作りました プロジェクト
を実行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"
  ],

ただし、以下のエラーを受け取ります

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

それを修正する方法はありますか?


奇妙なことに、私はそれを私のために働かせました。最新のCLIを使用していますか?node_modulesを再インストールしてみてください
LLai

1
エラーは別の場所にある必要があります
brijmcq 2017

@LLai @angular/cli: 1.3.0 node: 6.11.2 npm: 5.3.0は、コンソールにエラーが表示されない場合、.angular-cli.jsonのパーツを変更しましたか?
cilerler 2017

ええ、私はあなたの正確なスクリプトとスタイルを持っています。jquery@3.2.1 popper.js@1.11.1 bootstrap@4.0.0-beta
LLai 2017

これがどれだけ役立つかはわかりませんが、このページでこの質問を見ることができます。サードパーティのライブラリを追加する方法に関する質問があります
Rahul Singh

回答:


223

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>

命名に注意してください: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"
      ],

その後、それは今動作するようです。


jqueryのpackages.jsonには何がありますか?私のnode_modules jqueryフォルダーには、jquery.slim.min.jsがありませんでした。実際、jquery 3.2.1でそれを見つけました
Jim Culverwell 2017

2
私のpackage.jsonは、jqueryの場合、次のようになります。 `" jquery ":" ^ 3.2.1 "`完全なjqueryバージョンでもテストしたので、動作するようです。** umd ** / popper.min.jsだけが必要なようです。
マーティンバウアー

2
この回答には76の賛成票があります...開発者は、Githubの問題に近い「RTFM」/ Githubの問題に近い質問をしました😂– brandones '27
10/27

4
jQuery-slimを使用するかどうかは問題ではありませんが、popper.jsのumdバージョンを使用することで修正されました。
フィンスタ

2
popper依存関係の/dist/umd代わりに使用/distすることがトリックを行いました。ありがとう。
redent84 2018

50

私も同じ問題を抱えていました。私の解決策だっない(./node_modules/popper.js/dist/のdist-フォルダ(./node_modules/popper.js/dist/popper.js)ではなく、UMD-フォルダをインポートするUMD /popper.js)。jsファイルのミニバージョンと通常バージョンのどちらを取得してもかまいません。


3

Bootstrap 4の依存関係(jQuery、popper.jsなど)を追加して適切に含めることに多くの人が苦労していることがわかります。しかし、https://ng-bootstrap.github.ioの形式ではるかに簡単な解決策があります

ng-bootstrapはゼロから書かれたネイティブの Angularディレクティブを提供します。肯定的な結果は次のとおりです。* jQuery、popper.jsなどを含めたり、心配したりする必要はありません。*ディレクティブは、Angularの世界で「意味のある」APIを提供します

AngularでBootstrap 4.betaを使用しようとしている人のために-ng-bootstrapはBootstrap 4.beta CSSと完全に互換性のある最初のベータをリリースしました


Angularを使用している場合ははるかに簡単ですが、AngularJSを使用している場合はそうではありません...
El Mac

1
さて、質問はAngularとangular-cliに関するものだったので、なぜAngularJSがここで取り上げられるのか
わかりませ

1

Asp.net Mvcで作業している場合は、umdでも同じことができます。

以下のようにhttps://stackoverflow.com/a/50839939/8497522だけBundleConfig.csに追加します。

bundles.Add(new ScriptBundle("~/bundles/popper").Include("~/Scripts/umd/popper.js"));

例外:

bundles.Add(new ScriptBundle("~/bundles/popper").Include("~/Scripts/popper.js"));

0

モーダルを実行するには、tsconfig.tsでターゲットを「es2015」から「es5」に変更してください

"styles": [ "src/styles.css", 
            "node_modules/bootstrap/dist/css/bootstrap.min.css" ], 
"scripts": ["node_modules/jquery/dist/jquery.min.js", 
            "node_modules/popper.js/dist/umd/popper.min.js", 
            "node_modules/bootstrap/dist/js/bootstrap.min.js"] 
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.