После того, как я обновил winston до версии 3.2.1, я получаю сообщение об ошибке при попытке выполнить горячую перекомпиляцию проекта (когда мой проект запущен и я внес изменения).
Я попытался обновить все свои зависимости допоследние версии, но это не помогло. Кажется, что webpack-hot-middleware не работает правильно с последней версией winston.
Буду признателен за совет, как это исправить.
Ошибка:
i 「wdm」: Compiling...
D:\Dev\MyProjectName\node_modules\winston\lib\winston\create-logger.js:80
self._addDefaultMeta(info);
^
TypeError: self._addDefaultMeta is not a function
at Object.DerivedLogger.<computed> [as log] (D:\Dev\MyProjectName\node_modules\winston\lib\winston\create-logger.js:80:14)
at onInvalid (D:\Dev\MyProjectName\node_modules\webpack-hot-middleware\middleware.js:27:24)
at SyncHook.eval [as call] (eval at create (D:\Dev\MyProjectName\node_modules\tapable\lib\HookCodeFactory.js:19:10), <anonymous>:9:1)
at SyncHook.lazyCompileHook (D:\Dev\MyProjectName\node_modules\tapable\lib\Hook.js:154:20)
at Watchpack.<anonymous> (D:\Dev\MyProjectName\node_modules\webpack\lib\Watching.js:142:33)
at Object.onceWrapper (events.js:300:26)
at Watchpack.emit (events.js:210:5)
at Watchpack._onChange (D:\Dev\MyProjectName\node_modules\watchpack\lib\watchpack.js:118:7)
at Watchpack.<anonymous> (D:\Dev\MyProjectName\node_modules\watchpack\lib\watchpack.js:99:8)
at Watcher.emit (events.js:210:5)
at D:\Dev\MyProjectName\node_modules\watchpack\lib\DirectoryWatcher.js:101:9
at Array.forEach (<anonymous>)
at DirectoryWatcher.setFileTime (D:\Dev\MyProjectName\node_modules\watchpack\lib\DirectoryWatcher.js:99:42)
at DirectoryWatcher.<anonymous> (D:\Dev\MyProjectName\node_modules\watchpack\lib\DirectoryWatcher.js:312:12)
at D:\Dev\MyProjectName\node_modules\graceful-fs\polyfills.js:285:20
at FSReqCallback.oncomplete (fs.js:159:5)
Конфигурация логгера:
const winston = require('winston');
const transports = [];
const alignColorsAndTime = winston.format.combine(
winston.format.timestamp({
format: 'HH:MM:ss:SS DD.MM.YY',
}),
winston.format.printf(
info => `${info.timestamp} ${info.level}:${info.message}`,
),
);
/**
* Console transporter
*/
transports.push(new winston.transports.Console({
level: config.logging.console.level,
}));
const logger = winston.createLogger({
level: 'debug',
transports,
format: winston.format.combine(winston.format.colorize(), alignColorsAndTime),
exitOnError: false,
});
module.exports = logger;
Версии зависимостей:
winston@3.2.1
webpack-hot-middleware@2.25.0
webpack@4.41.2