2016-11-29 4 views
0

特定のモジュール(アンダースコアなど)がグローバルモジュールとして使用できるブラウザコンテキストで実行される一連のスクリプトで作業します。ただし、node_modulesのモジュールには、require/importというアンダースコアが直接依存しています。コンパイルされたスクリプトでそのライブラリを複製するのではなく、これらのファイルをコンパイルするときに、グローバルアンダースコアインスタンスに依存するようにWebPackを構成することは可能ですか?WebPack 2:必要なモジュールをグローバルに置き換えました

答えて

2

Externals:WebPACKの中

externals設定がバンドル内の依存関係を含めていないの方法を提供します。代わりに、作成されたバンドルは、その依存関係を使用してコンシューマ環境に存在します。これは通常、ライブラリ開発者にも当てはまりますが、アプリケーション開発者はこの機能も十分に活用できます。

のWebPACKが結果バンドルに含まれるかを把握するために全体依存関係ツリーを歩くので、これはでも、node_modules内のモジュールのために動作します。この構文は、外部ライブラリを入手することができるすべての可能な方法を記述するために使用される

externals : { 
    lodash : { 
    commonjs: "lodash", 
    amd: "lodash", 
    root: "_" // indicates global variable 
    } 
} 

ご利用の場合のために特別だexampleもありますように、それが見えます。ここのlodashは、AMDとCommonJSモジュールシステムではロダッシュとして利用できますが、グローバル変数形式で_として利用できます。

0

バンドルがロードされている環境で既に使用可能なライブラリに依存する場合は、externalsを使用する必要があります。

module.exports = { 
    externals: { 
     underscore: "_" 
    } 
} 

オブジェクト(underscore)のキーは、あなたがそれをインポートするために使用するもので、その値(_)は、それが探しますグローバル変数です。あなたが探しているもの

require("underscore"); // Will return the _ variable from the global environment! 
関連する問題