是否有属性或编译器的属性保存已编译的包?
var compiler = require('webpack')({
entry: entry_point,
resolve: {
modulesDirectories: modules,
extensions: ['', '.js']
},
stats: {
colors: true,
progress: true,
hash: true
}
}, function(err, stats) {
// compiler
// stats
});
答案 0 :(得分:4)
应该可以将编译器配置为使用替换的内存中文件系统,并在编译完成后检索输出。
这是一个示例compile()
函数,它返回一个将解析输出文件内容的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})
})
})
}