1

webpackのドキュメントには、のプロパティを設定するモジュールをシミングするための興味深いパターンが掲載されています(window.XModule = {...}など)。 ES6にパターンを適用するwebpackはこのモジュールのシミングパターンをどのように処理しますか?

https://webpack.github.io/docs/shimming-modules.html#the-file-sets-a-property-on-window-window-xmodule

require('imports?window=>{}!exports?window.XModule!./file.js') 

、私はこれで終わった:私は具体的には、どのような役割imports-loader一部、WebPACKのは、このステートメントを処理する方法を理解しようとしてい

import XMODULE from 'imports?window=>{}!exports?window.XModule!./file.js' 

演劇、imports?window=>{}。私はexports-loaderが基本的にXMODULEwindow.XModuleに設定していることを理解しています。 imports-loaderについては、依存関係によってオブジェクトが汚染されるのを許可していないようです...しかしどうですか?

imports?window=>{}はどのようにしてexports?window.XModuleと連携しますか?

答えて

2

私は私の質問に対する答えを理解しました。まず、ローダー事項(exports-loaderimports-loaderexpose-loader)の順:私の問題の具体例について

https://webpack.github.io/docs/shimming-modules.html#order-of-loaders

は...

'imports?window=>{}!exports?window.XModule!./file.js'

WebPACKのはimports-loaderを実行し、モジュールの先頭に以下を挿入します。

/*** IMPORTS FROM imports-loader ***/ 
var window = {}; 

WebPACKのはexports-loaderを実行して、モジュールの最後に次のように挿入します。

/*** EXPORTS FROM exports-loader ***/ 
exports["XModule"] = (window.XModule); 
関連する問題