2016-11-12 7 views
1

はここresolve.extensions程度official documentWebpackでresolve.extensionsは何をしますか?

resolve.extensions

モジュールを解決するために使用されなければならない拡張子の配列です。たとえば、CoffeeScriptファイルを検出するには、配列に文字列 ".coffee"が含まれている必要があります。

デフォルト:[ ""、 ".webpack.js"、 ".web.js"、 "の.js"]

重要:このオプションを設定すると、WebPACKのは、もはやしようとしないだろうことを意味し、デフォルトを上書きします既定の拡張機能を使用してモジュールを解決します。拡張子が必要なモジュール(require( './ somefile.ext')など)を適切に解決するには、配列に空の文字列を含める必要があります。同様に、拡張子なしで必要なモジュール(例:require( 'アンダースコア'))を拡張子「.js」のファイルに変換する場合は、配列に「.js」を含める必要があります。

私はこれで完全に混乱しています。

"拡張子が必要なモジュール(たとえば、(./ somefile.ext ')が必要です)を適切に解決するには、配列に空の文字列を含める必要があります。

なぜですか?

"同様に、拡張子なしの必須モジュール(例:require( 'アンダースコア'))を拡張子「.js」のファイルに変換する場合は、配列に「.js」を含める必要があります。

なぜですか?配列に ".js"と ".css"を含めるとどうなりますか?

resolve.extensionの動作が不明です。例を挙げて説明してください。

答えて

2

Webpackはresolve.extensionsを使用して、モジュールへのすべての可能なパスを生成します。

function getPaths(module) { 
    return ['', '.js', '.css'].map(ext => module + ext); 
} 

getPaths('./somefile'); // ['./somefile', './somefile.js', './somefile.css'] 

getPaths('./somefile.js'); // ['./somefile.js', './somefile.js.js', './somefile.js.css'] 

WebPACKのは、それはファイルが見つかるまで、これらの経路のそれぞれの検索に進むでしょう。

関連する問題