我在手表模式下运行时尝试使用多个Webpack配置。
这个要点是,根据我使用build
还是watch
,使用不同的参数调用编译回调。我无法挖掘出这样的任何用法,并且想知道是否有其他人看到过这种行为。
var webpack = require('webpack');
var configs = [config, config] // let me know if you need this
var done = function () { // err, stats?
console.log('args', arguments);
};
单次运行模式
这有点意义(2个编辑,2个统计对象),并且错误被正确冒泡。
webpack(configs).run(done);
// args {
// '0': null,
// '1': {
// stats: [ [Object], [Object] ],
// hash: '6939dac42dcc6c751bc6a0de33bd8893f6a13f78'
// }
// }
观看模式
甚至可以多次输出。
webpack(configs).watch(done);
// {
// '0': null,
// '1': {
// compilation: {
// _plugins: [Object],
// compiler: [Object],
// resolvers: [Object],
// ...
// hash: 'a0de33bd8893f6a13f78',
// fileDependencies: [Object],
// contextDependencies: [],
// missingDependencies: [] },
// hash: 'a0de33bd8893f6a13f78',
// startTime: 1439969525156,
// endTime: 1439969525645
// }
// }
如果您需要更多详细信息,请与我们联系。
"webpack": "^1.10.5"
答案 0 :(得分:0)
我能够使用done
处理程序中的以下代码段重新生成报告。以下是在任一模式下编译时的结果摘要:
run
模式
此处理程序仅触发一次,并在摘要stats
对象下传递compilation
数组。只需循环遍历compilation.stats
和.toString(opts)
。
watch
模式
在初始配置数组中,每个配置一次触发此处理程序。每次调用都会传递相应的stats
对象本身,您可以直接使用.toString(opts)
进行字符串化。
function done(err, compilation) {
if (err) {
console.log('[webpack] error:', err);
return;
}
// Stats are populated differently in build vs. watch mode.
var stats = compilation.stats || [compilation];
console.log('[webpack] the following asset bundles were built:');
stats.forEach(function (c) {
console.log(c.toString(statsOpts));
});
};