#webpack
#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
});
Ответ №1:
Должна быть возможность настроить компилятор на использование заменяемой файловой системы в памяти и получение выходных данных после завершения компиляции.
Вот пример compile()
функции, которая возвращает обещание, которое разрешит содержимое выходного файла:
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})
})
})
}
Комментарии:
1. Похоже, что в текущей версии memory-fs решение намного сложнее. Я изменил свой на форму
const pathParts = compiler.outputFileSystem.pathToArray(__dirname).concat(["dist", "main.js"]); const file = _.get(compiler.outputFileSystem.data, pathParts).toString();