【问题标题】:Webpack dynamic require causes endless compilationsWebpack 动态 require 导致无休止的编译
【发布时间】:2016-04-12 05:42:13
【问题描述】:

我有一个简单的 webpack 插件,它会在编译开始时写入标准输出,然后在编译完成时写入。当我有一个动态的require 并在监视模式下运行 webpack 时,事实证明 webpack 一直在尝试以某种无限循环进行编译。我看到的是:

[07:36:42] Webpack [admin] 开始编译...

[07:36:43] Webpack [admin] 完成编译。

[07:36:43] Webpack [admin] 开始编译...

[07:36:44] Webpack [admin] 完成编译。

[07:36:44] Webpack [admin] 开始编译...

[07:36:45] Webpack [admin] 完成编译。

[07:36:45] Webpack [admin] 开始编译...

[07:36:45] Webpack [admin] 完成编译。

[07:36:46] Webpack [admin] 开始编译...

[07:36:46] Webpack [admin] 完成编译。

没有任何发射。它不应该监视特定目录下的文件更改并仅在发生更改时编译吗?

有什么办法可以避免吗?

编辑

实际上,只有在我的包中也包含样式并使用 ExtractTextPlugin 将它们提取到 css 文件中时才会发生这种情况。

这是样式的设置:

module: {
    loaders: [
        {
            test: /\.css$/,
            loader: ExtractTextPlugin.extract("style-loader", `css-loader!postcss-loader`, {
               publicPath: '../'
            })
        }
    ]
},
plugins: [
    new ExtractTextPlugin(`./${bundleFolder}/[name].css`)
]

编辑 2

我向 webpack 的 github 提交了一个问题:https://github.com/webpack/webpack/issues/2320

【问题讨论】:

  • 是的 - 不要关注你的输出目录的变化
  • 您的意思是确保(例如通过 ContextReplacementPlugin)输出目录与正则表达式不匹配?
  • 不是。我使用 require.context(... 来选择合适的上下文。

标签: webpack


【解决方案1】:

我觉得你的问题应该和webpack/watchpack#25一样

试试这个https://github.com/yessky/webpack-mild-compile,它会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    • 2018-03-11
    • 1970-01-01
    • 2016-08-13
    • 2019-06-26
    • 2019-09-04
    • 1970-01-01
    相关资源
    最近更新 更多