diff --git a/.eslintrc.js b/.eslintrc.js index 0dd2bdc..2951eb8 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -8,6 +8,7 @@ module.exports = { { singleQuote: true, trailingComma: 'es5', arrowParens: 'always' }, ], 'class-methods-use-this': 0, - 'prefer-template': 0 + 'prefer-template': 0, + 'no-underscore-dangle': 0 }, }; diff --git a/kitchen-sync/webpack.config.js b/kitchen-sync/webpack.config.js index 894061c..3703639 100644 --- a/kitchen-sync/webpack.config.js +++ b/kitchen-sync/webpack.config.js @@ -1,9 +1,15 @@ const path = require('path'); +const consola = require('consola'); + const requireESM = require('esm')(module); const Self = requireESM('../src/index').default; +consola.wrapConsole(); + +let lastProgress; + module.exports = { mode: 'production', context: __dirname, @@ -21,8 +27,15 @@ module.exports = { plugins: [ new Self({ color: 'orange', - // profile: true, name: 'kitchen-sync', + reporter: { + update({ state }) { + if (lastProgress !== state.progress && state.progress % 25 === 0) { + consola.log(state.progress + '%'); + lastProgress = state.progress; + } + }, + }, }), ], }; diff --git a/src/reporters/bars.js b/src/reporters/bars.js index c077eea..eefa8be 100644 --- a/src/reporters/bars.js +++ b/src/reporters/bars.js @@ -8,7 +8,12 @@ import { throttle } from '../utils'; import { formatRequest } from '../utils/request'; import { BULLET, TICK } from '../utils/consts'; -const globalConsole = console; +// Convention: Original values are kept with two underscores + +const globalConsole = { + log: console.__log || console.log, // eslint-disable-line no-console + _stdout: console._stdout, // eslint-disable-line no-console +}; const renderT = throttle((fn, ...args) => fn(...args), 1, 50); @@ -21,6 +26,8 @@ export default class BarsReporter { compiling() { if (!globalConsole.draft) { draftLog(globalConsole); + console.__stdout = console._stdout; // eslint-disable-line no-console + console._stdout = globalConsole._stdout; // eslint-disable-line no-console } Consola.pause(); @@ -29,6 +36,11 @@ export default class BarsReporter { } done() { + // eslint-disable-next-line no-console + // if (console.__stdout) { + // console._stdout = console.__stdout; // eslint-disable-line no-console + // delete console.__stdout; // eslint-disable-line no-console + // } Consola.resume(); }