Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript webpack如何处理此模块填充模式?_Javascript_Ecmascript 6_Webpack_Imports Loader_Exports Loader - Fatal编程技术网

Javascript 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

webpack的文档列出了一种有趣的填充模式,用于在
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
before
imports loader
before
exports 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);