Javascript webpack如何处理此模块填充模式?
webpack的文档列出了一种有趣的填充模式,用于在Javascript webpack如何处理此模块填充模式?,javascript,ecmascript-6,webpack,imports-loader,exports-loader,Javascript,Ecmascript 6,Webpack,Imports Loader,Exports Loader,webpack的文档列出了一种有趣的填充模式,用于在window上设置属性的模块,如window.XModule={…} 将该模式应用于ES6,我得出以下结论: import XMODULE from 'imports?window=>{}!exports?window.XModule!./file.js' 我试图理解Webpack是如何处理这条语句的,特别是imports加载程序部分扮演的角色,imports?window=>{}。我知道exports loader基本上将XMODU
window
上设置属性的模块,如window.XModule={…}
将该模式应用于ES6,我得出以下结论:
import XMODULE from 'imports?window=>{}!exports?window.XModule!./file.js'
我试图理解Webpack是如何处理这条语句的,特别是imports加载程序
部分扮演的角色,imports?window=>{}
。我知道exports loader
基本上将XMODULE
从依赖项设置为window.XMODULE
。至于导入加载程序
,它所做的似乎只是不允许窗口
对象被依赖项污染。。。但是怎么做呢
imports?window=>{}
如何与exports?window.XModule
协同工作?我找到了问题的答案。首先,加载程序的顺序很重要(expose loader
beforeimports loader
beforeexports loader
):
关于我问题中的具体例子
导入?窗口=>{}!导出?window.XModule/file.js'
webpack将运行导入加载程序
,并在模块开头插入以下内容:
/*** IMPORTS FROM imports-loader ***/
var window = {};
/*** EXPORTS FROM exports-loader ***/
exports["XModule"] = (window.XModule);
webpack将运行导出加载程序
,并在模块末尾插入以下内容:
/*** IMPORTS FROM imports-loader ***/
var window = {};
/*** EXPORTS FROM exports-loader ***/
exports["XModule"] = (window.XModule);