2

如果我使用imports-loaderexports=>false ,这在配置中意味着什么?它应该注入变量var exports = false,但我不知道何时以及为什么需要这个变量。

module : {
    loaders : [
            {
                test : /eonasdan-bootstrap-datetimepicker/,
                loader : 'imports?define=>false,exports=>false,moment=moment'
            }]
}
4

1 回答 1

4

Imports 用于填充期望定义全局的第三方代码,例如 jQuery$或 AMD 的define. 您可能想要这样做的原因是因为模块捆绑器经常捆绑到 AMD 和 CommonJS 都理解的格式,即通用模块定义UMD格式。导入 UMD 模块时,它将首先检查是否定义(AMD)存在,然后导出(CommonJS)。Webpack 更容易解析 CommonJS(节点原生格式),因此将 define 设置为 false 显式告诉 webpack 不要将其解析为AMD模块。

更新

似乎他们可能会禁用所有模块导出并将 moment 定义为 moment js 库。我猜想该库中的代码正在扩展 bootstrap datepicker 控件的功能。

于 2016-10-30T18:14:26.670 回答