如何在将webpack构建的输出写入磁盘之前将其作为字符串捕获?

时间:2016-08-26 11:24:42

标签: node.js webpack babeljs

webpack中似乎没有output选项将输出作为字符串写入nodejs Bufferstdout。谷歌搜索没有任何希望。这是通过配置还是第三方模块实现的?

2 个答案:

答案 0 :(得分:1)

您可以write to an in-memory filesystem and read from it after compilation

const compiler = webpack({ / options / });
const outputFileSystem = new webpack.MemoryOutputFileSystem()
compiler.outputFileSystem = outputFileSystem;
compiler.run((err, stats) => {
  // Read the output later:
  const content = outputFileSystem.readFileSync('...');
});

这涉及通过其Node API调用webpack,但是creating a custom webpack plugin也可以完全在webpack.config.json中完成,这会更改outputFileSystem上的编译器apply

答案 1 :(得分:0)

经过研究,我认为实现这一目标的唯一方法就是修补webpack的NodeOutputFileSystem.writeFile以捕获字符串内容。

我最终使用raw babeljs而不是webpack来获取字符串。