#javascript #webpack
#javascript #webpack
Вопрос:
Время от времени я вижу что-то вроде следующего в моем файле пакета:
var _TodoListContainer = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module "containers/TodoListContainer.react""); e.code = 'MODULE_NOT_FOUND'; throw e; }()));
Как я могу заставить Webpack предупреждать о пропавших файлах при сборке?
Ответ №1:
API узла webpack предоставляет вам объект статистики в обратном вызове:
var webpack = require("webpack");
// returns a Compiler instance
webpack({
// configuration
}, function(err, stats) {
// ...
});
Этот объект содержит всю необходимую вам информацию, и вы можете использовать его для программной обработки ошибок:
var webpack = require("webpack");
webpack({
// configuration
}, function(err, stats) {
if(err)
return handleFatalError(err);
var jsonStats = stats.toJson();
if(jsonStats.errors.length > 0)
return handleSoftErrors(jsonStats.errors);
if(jsonStats.warnings.length > 0)
handleWarnings(jsonStats.warnings);
successfullyCompiled();
});
Если вы используете CLI с конфигурацией Webpack по умолчанию, он должен предоставить вам обратную связь об отсутствующих зависимостях из коробки. Вы можете использовать флаг командной строки —display-error-details для уточнения деталей.
Комментарии:
1. Я использую Gulp и
stream.on('error', util.log)
для обработки ошибок. В этом случае ошибок не возникает.2. Ошибки будут выдаваться только при фатальных ошибках. Вы можете использовать задачу здесь и проверить объект статистики, переданный при обратном вызове, как я проиллюстрировал в последнем примере моего ответа.