2017-03-03 4 views
2

私はwebpackと角度2で動作するブートストラップ4を取得しようとしています。これを行うための最良の方法はng-bootstrapを使用することです。@ngboostrap BootstrapのJavaScriptにはjQueryが必要です。 BootstrapのJavaScriptの前にjQueryが含まれている必要があります。 webpackを使用しているとき

私は、指示に従ってjqueryの後に私のベンダーリストに '@ ng-bootstrap/ng-bootstrap'を追加し、私のapp.module.tsファイルにインポートを入れました。

しかし、私がブラウザで実行すると、私はZoneSymbolErrorを取得します。

私はwebpack.config.vendor.jsが再構築されたことを保証しました。動きのあるものは若干異なるエラーが発生しますが、正しく動作するものはありません。

ng-bootstrapをwebpackで動作させる方法の例がありますか(見つけられませんでした)ですか?

編集:ここにWebpackのベンダーエリアがあります。

エラー:

entry: { 
     vendor: [ 
      '@angular/common', 
      '@angular/compiler', 
      '@angular/core', 
      '@angular/http', 
      '@angular/platform-browser', 
      '@angular/platform-browser-dynamic', 
      '@angular/router', 
      '@angular/platform-server', 
      'angular2-universal', 
      'angular2-universal-polyfills', 
      'bootstrap/dist/css/bootstrap.css', 
      '@ng-bootstrap/ng-bootstrap', 
      'es6-shim', 
      'es6-promise', 
      'event-source-polyfill',     
      'zone.js', 
     ] 
    }, 

そして、ここでは、エラーのブートストラップのJavaScriptはjQueryが必要です。 BootstrapのJavaScriptの前にjQueryが含まれている必要があります。オブジェクトのm(http://localhost:5000/dist/vendor.js?v=kFPeLwtbBxRH90pdzruTblX-UHexGi3YXcDeNvhxzsw:1061:2209)。オブジェクトにおけるFN(http://localhost:5000/dist/main-client.js?v=RLXNCyPanqpzRmxUCWX-fr4myBJMfSl5_2XrNSlvG-E:84:20)でwebpack_requirehttp://localhost:5000/dist/main-client.js?v=RLXNCyPanqpzRmxUCWX-fr4myBJMfSl5_2XrNSlvG-E:660:30)でObject.options.path(http://localhost:5000/dist/main-client.js?v=RLXNCyPanqpzRmxUCWX-fr4myBJMfSl5_2XrNSlvG-E:993:1)におけるFN(http://localhost:5000/dist/main-client.js?v=RLXNCyPanqpzRmxUCWX-fr4myBJMfSl5_2XrNSlvG-E:84:20)でwebpack_requirehttp://localhost:5000/dist/main-client.js?v=RLXNCyPanqpzRmxUCWX-fr4myBJMfSl5_2XrNSlvG-E:660:30)で(http://localhost:5000/dist/main-client.js?v=RLXNCyPanqpzRmxUCWX-fr4myBJMfSl5_2XrNSlvG-E:1700:9)。 http://localhost:5000/dist/main-client.js?v=RLXNCyPanqpzRmxUCWX-fr4myBJMfSl5_2XrNSlvG-E:712:10

でmodule.exportsは(http://localhost:5000/dist/main-client.js?v=RLXNCyPanqpzRmxUCWX-fr4myBJMfSl5_2XrNSlvG-E:709:38)でwebpack_requirehttp://localhost:5000/dist/main-client.js?v=RLXNCyPanqpzRmxUCWX-fr4myBJMfSl5_2XrNSlvG-E:660:30)で(http://localhost:5000/dist/main-client.js?v=RLXNCyPanqpzRmxUCWX-fr4myBJMfSl5_2XrNSlvG-E:6108:18)私はそれに戻ってjqueryの入れた場合は、jQueryの前にロードしなければならないと言うが、それはまだエラーがあり、それ。

+0

NG-ブートストラップは、**のjQueryを必要としません。関連するコード、設定、エラーが表示されない場合、できることはあまりありません。 –

+0

それでは、なぜエラーが起きますか?ブートストラップ4とngbootstrapでjqueryを完全に削除できるのですか?このようなものをwebpackに追加する方法に関するドキュメントはありますか? –

+0

更新:jqueryを完全に削除しても役に立たない –

答えて

4

私はルックスで推測していますASP.NET Core/Angularテンプレートを使用しています。これを修正するには、boot-client.tsファイルから次の行を削除する必要がありました。

import 'bootstrap';

+0

問題を修正しましたが、理由を説明してください。 –

+0

私は正直なところ、なぜその行があるのか​​は分かりません。明確に削除することは問題ではありません。何らかの理由でノードモジュールからブートストラップを取得しているので、起動時にそれを正しくインポートするだけで、ブートストラップ内で別のエラーが発生し、jQueryが必要になります。 – dandax

0

ng-bootstrapからウィジェットを使用するにはないはjQueryのを必要とし、ブートストラップのJavaScriptを必要としないをしますか。必要な唯一の依存関係は、BootstrapのCSSです。

ほとんどの場合、ブートストラップのJavaScriptが含まれている可能性があるので、あなたの側でエラーが発生しています。繰り返しますが、これは必要ではありません。唯一の依存関係はCSSです。

あなたはWebPACKのを使用して、NG-ブートストラップデモサイトを見てすることができます - あなたはits vendor fileを調べる場合にのみ、ブートストラップのCSSが参照されていることがわかります:

import 'bootstrap/dist/css/bootstrap.css'; 
+0

ブートストラップがwebpack configから完全に削除されました。 ng-bootstrapと.cssファイルのみが存在します。それでおしまい。これはWebpack固有のものです。 –

関連する問題