我目前正在使用基本Webpack API与自定义打印机一起进行生成结果,即:
import webpack from 'webpack'
webpack({ /* webpack config */ }, printStats)
function printStats(err, stats) {
// my custom printing of build results
}
现在我想切换到使用webpack-dev-middleware
,但保留我的stat打印机。我认为这可能会奏效:
import webpackDev from 'webpack-dev-middleware'
app.use(webpackDev(webpack({ /* webpack config */ }, printStats), {
quiet: true // disable default printing so I can use my own
// ... more webpack-dev-middelware configuration
}))
但是它只打印第一次编译,忽略了后续的编译,即使它们确实发生了。怎样才是正确的方法?
发布于 2016-06-24 06:40:11
我通过plugin
方法直接侦听Webpack编译器对象,从而解决了这个问题:
const compiler = webpack({ /* webpack config */ })
compiler.plugin('done', stats => {
// my custom printing of build results
})
app.use(webpackDev(compiler, {
quiet: true // disable default printing so I can use my own
// ... more webpack-dev-middelware configuration
}))
每次编译完成时,无论是否成功,都会发生done
事件。您可以通过plugin
方法侦听其他事件:
'run'
:表示正在进行一次性编译.监听器接受编译器对象和回调函数,必须调用这些函数来指示侦听器已处理事件。'watch-run'
:指示源代码正在以监视模式编译或重新编译。监听器接受编译器对象和回调函数,必须调用这些函数来指示侦听器已处理事件。'invalid'
:表示在监视源的过程中检测到了对它的更改(稍后将出现一个watch-run
事件。同步;侦听器不带参数。https://stackoverflow.com/questions/37976766
复制相似问题