2016-08-22 5 views
1

私は最近、フロントエンド用のWebpackを使い始め、モジュールで問題を見つけました。
たとえば、2つのモジュールを使用します.1つは別のモジュールを使用します(具体的にはangular-bootstrap-sliderbootstrap-slider)。 Slider関数が未定義であるためにangular-bootstrap-sliderが初期化に失敗していました。
Sliderをグローバルにエクスポートすることができます(これはjqueryとangular libsで行いました)またはangle bootstrap-sliderでSliderをインポートすることができました(私はこれを選択しました)。
グローバルエクスポートはwebpackの使用を避け、ライブラリ内の何かをインポートすることがコードの変更を意味するため、どちらのオプションも嫌いです。
何か不足しているか、依存関係に対処するためのベストプラクティスがありますか?webpackでのモジュールの使用

答えて

0

あなたが探しているものはshimming modulesです。

... 
plugins: [ 
    new webpack.ProvidePlugin({ 
    'Slider': 'bootstrap-slider' 
    }) 
] 
+0

グローバルではありませんか? –

+0

いいえ、それは 'require()'コールにコンパイルされました –

+0

ライブラリ内のどこでも 'new Slider'の呼び出しはrequire()にコンパイルされますか?しかし、もし私が 'Slider'コンストラクタを持つ2つのライブラリを持っていたらどうなりますか? –

0

は、私はあなたがimports-loaderを使用することができると思う:

これは、あなたがSliderモジュールbootstrap-sliderからインポートすることが事実であることを宣言することができますWebPACKのためhttps://github.com/webpack/imports-loader

輸入ローダー

変数をモジュールのスコープに注入するために使用できます。これは、 です。第三者のモジュールが$などの変数、またはこれがウィンドウオブジェクトであるグローバル に依存している場合に特に便利です。

+0

いいですね、私は間違いなくこれを試します –

+0

これは良い解決策ですが、まだライブラリのソースを編集する必要がありますか? –

+0

私が理解する限り、このローダーは 'require'呼び出しをターゲットのソースに追加します。 – Digger2000

関連する問題