Webpack 中的 imports-loader 中的 exports=>false

exports=>false in imports-loader in Webpack

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

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

Imports 用于填充需要定义全局变量的第三方代码,例如 jQuery $ 或 AMD 的 define。你可能想要这样做的原因是因为模块打包器通常打包成 AMD 和 CommonJS 都理解的格式,也就是通用模块定义 UMD 格式。导入 UMD 模块时,它会首先检查定义 (AMD) 是否存在,然后导出 (CommonJS)。 Webpack 更容易解析 CommonJS(节点本机格式),因此将 define 设置为 false 明确告诉 webpack 不要将其解析为 AMD 模块。

更新

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