Webpack多配置回调错误和统计信息

时间:2015-08-19 07:42:43

标签: javascript node.js build webpack

我在手表模式下运行时尝试使用多个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"

1 个答案:

答案 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));
  });
};