【问题标题】:webpack babel loader imports same module twicewebpack babel loader 两次导入相同的模块
【发布时间】:2016-07-08 04:19:08
【问题描述】:

我正在创建一个包含多个 ES2015 模块的组件库。每个都是相对独立的,但是有一个外部构建系统来帮助促进集成测试和部署。 其中一个模块有一个核心模块和一组可选的子模块。代码结构大致如下:

root
  .\build\...
  .\src
    .\bundle1
      .\build\...
      .\src
        .\core.js
        .\submodules\
          .\a.js
          .\b.js

由于历史原因,一些子模块依赖于核心模块,目前必须与它一起部署,因此最终会产生一些循环依赖。如前所述,每个模块都是相对独立的,因此它有自己的构建系统。当使用本地构建时,一切看起来都很好。当使用“主”构建系统时,问题变得很明显。当它启动相同的构建时,核心块最终会生成两次。内部子模块将自己附加到第一个实例,但第二个实例实际上是导出的,使得整个纸牌屋变得毫无用处。 这似乎不是 webpack 问题,因为当我创建演示应用程序时我没有使用 babel,并且错误没有出现。

很抱歉花了这么长时间才明白这一点...... 我的问题是,有什么明显的我遗漏的东西可能导致这种情况,或者 babel 的某个地方有错误吗/ webpack-babel-loader?

由于有点复杂,我创建了this reference project,而不是在此处内联源代码。如上所述,/develop 没有出现这个问题,因为它没有使用 babel。 add-babel 分支可以。

【问题讨论】:

    标签: webpack babeljs


    【解决方案1】:

    事实证明,是的,我确实错过了一些可能应该很明显的东西。由于bundle1 的配置是从更高的几个级别打开的,因此显然需要context。 TBH 我不确定我是否完全理解这一点,因为它在使用 commonJS 时有效,但在转译时无效......

    【讨论】:

    • 该链接告诉我们在涉及动态导入时使用了上下文。
    • 是的。在这种情况下,我的问题是我不知道 context 是一个配置选项。我责怪 WebPack 糟糕的文档:p
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    • 2016-03-24
    • 1970-01-01
    • 2020-11-18
    • 1970-01-01
    • 2018-09-11
    相关资源
    最近更新 更多