有没有办法以字符串形式获取webpack Node API的输出?

Bry*_*ace 4 webpack

可能是统计信息或编译器的属性包含已编译的软件包吗?

var compiler = require('webpack')({
    entry: entry_point,
    resolve: {
        modulesDirectories: modules,
        extensions: ['', '.js']
    },
    stats: {
        colors: true,
        progress: true,
        hash: true
    }
}, function(err, stats) {
   // compiler
   // stats

});
Run Code Online (Sandbox Code Playgroud)

Fil*_*vić 6

应该可以将编译器配置为使用替换的内存文件系统,并在编译完成后检索输出。

这是一个compile()返回promise 的示例函数,该promise将解析输出文件的内容:

const MemoryFs = require('memory-fs')
const webpack = require('webpack')

function compile () {
  const compiler = webpack({
    output: {
      filename: 'bundle.js',
      path: '/'
    }
  })

  compiler.outputFileSystem = new MemoryFs()

  return new Promise((resolve, reject) => {
    compiler.run((err, stats) => {
      if (err) return reject(err)

      if (stats.hasErrors() || stats.hasWarnings()) {
        return reject(new Error(stats.toString({
          errorDetails: true,
          warnings: true
        })))
      }

      const result = compiler.outputFileSystem.data['bundle.js'].toString()
      resolve({result, stats})
    })
  })
}
Run Code Online (Sandbox Code Playgroud)