【问题标题】:exports=>false in imports-loader in Webpack在 Webpack 的 imports-loader 中导出=>false
【发布时间】:2016-10-27 14:15:48
【问题描述】:

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

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

【问题讨论】:

  • 我无法找到导出为 false 的匀场模块的导入,你能给出使用它的链接吗?
  • @pritishvaidya 在这个answer

标签: javascript node.js webpack imports-loader


【解决方案1】:

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

更新

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

【讨论】:

  • 我知道我们为什么使用var define = false,但我问什么是var exports = false
  • @Matt 在这种情况下会禁用 CommonJS exports。通常当我使用这个模块时,我会通读我尝试导入的代码并相应地调整导入字符串。
  • 似乎他们将它们都定义为 false 以禁用所有模块导出并将对时刻的引用设置为时刻库。定义将在代码顶部注入。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-28
  • 2016-10-28
  • 2018-07-26
  • 2017-05-27
  • 2016-04-20
  • 2019-06-26
  • 2021-06-28
相关资源
最近更新 更多