51

私はwebpack(http://webpack.github.io/)を試していますが、見た目はとても良いですが、ここで立ち往生しています。

ライブラリ、f.ex jQuery に CDN を使用しているとします。次に、私のコードではrequire('jquery')、モジュールからグローバル jquery インスタンスをインクルードしようとするのではなく、グローバル jquery インスタンスを自動的に指すようにします。

次のようなプラグインを使用してみましたIgnorePlugin

new webpack.IgnorePlugin(new RegExp("^(jquery|react)$"))

これはライブラリを無視するために機能しますが、webpacker を実行すると、必要なモジュールが「見つからない」と表示されます。

jqueryどういうわけか、代わりにグローバルコンテキストからピックアップする必要があるwebpack を伝える必要があります。一般的な使用例のように見えるので、ドキュメントがこれを具体的に対象としていないことにちょっと驚いています。

4

1 に答える 1

81

Webpackのドキュメントによると、構成オブジェクトのプロパティを使用して、externals「Webpackによって解決されないが、出力の依存関係になるライブラリの依存関係を指定できます。これは、実行時に環境からインポートされることを意味します[sic]. "

そのページの例は、jQuery を使用してそれを非常によく示しています。簡単に言うと、通常の CommonJS スタイルで jQuery を要求できます。

var jQuery = require('jquery');

次に、構成オブジェクトで、externalsプロパティを使用して jQuery モジュールをグローバルjQuery変数にマップします。

{
    externals: {
        // require("jquery") is external and available
        //  on the global var jQuery
        "jquery": "jQuery"
    }
}

Webpack によって作成された結果のモジュールは、既存のグローバル変数を単純にエクスポートします (簡潔にするために、ここでは多くのものを省略しています)。

{
    1: function(...) {
        module.exports = jQuery;
    }
}

これを試してみましたが、説明どおりに機能します。

于 2014-03-24T19:59:40.237 に答える