如何使用 webpack-dev-middleware 对构建统计信息进行自定义格式化?
How to do custom formatting of build stats with webpack-dev-middleware?
我目前正在使用 basic Webpack API 和自定义打印机来打印结果,即:
import webpack from 'webpack'
webpack({ /* webpack config */ }, printStats)
function printStats(err, stats) {
// my custom printing of build results
}
现在我想改用 webpack-dev-middleware
,但保留我的静态打印机。我希望这可能会起作用:
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
}))
但它只打印第一个编译并忽略后续的编译,即使它们确实发生了。正确的做法是什么?
我通过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
事件。同步;侦听器不接受任何参数。
我目前正在使用 basic Webpack API 和自定义打印机来打印结果,即:
import webpack from 'webpack'
webpack({ /* webpack config */ }, printStats)
function printStats(err, stats) {
// my custom printing of build results
}
现在我想改用 webpack-dev-middleware
,但保留我的静态打印机。我希望这可能会起作用:
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
}))
但它只打印第一个编译并忽略后续的编译,即使它们确实发生了。正确的做法是什么?
我通过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
事件。同步;侦听器不接受任何参数。