From ec93111b70de97318afe34708175e643d8e350bf Mon Sep 17 00:00:00 2001 From: Jason O'Neill Date: Thu, 30 Sep 2021 00:23:56 -0700 Subject: [PATCH] fix: hmr dev server log levels --- src/hmr/hotModuleReplacement.js | 29 +++++++++++++++++++++++++---- src/loader.js | 5 ++++- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/src/hmr/hotModuleReplacement.js b/src/hmr/hotModuleReplacement.js index 33f75f80..208307b7 100644 --- a/src/hmr/hotModuleReplacement.js +++ b/src/hmr/hotModuleReplacement.js @@ -11,6 +11,17 @@ const srcByModuleId = Object.create(null); const noDocument = typeof document === "undefined"; +const logLevels = { + none: 6, + false: 6, + error: 5, + warn: 4, + info: 3, + log: 2, + true: 2, + verbose: 1, +}; + const { forEach } = Array.prototype; function debounce(fn, time) { @@ -207,8 +218,12 @@ function isUrlRequest(url) { } module.exports = function (moduleId, options) { + const logLevel = logLevels[options.logLevel] || logLevels.info; + if (noDocument) { - console.log("no window.document found, will not HMR CSS"); + if (logLevel <= logLevels.warn) { + console.warn("no window.document found, will not HMR CSS"); + } return noop; } @@ -220,7 +235,9 @@ module.exports = function (moduleId, options) { const reloaded = reloadStyle(src); if (options.locals) { - console.log("[HMR] Detected local css modules. Reload all css"); + if (logLevel <= logLevels.info) { + console.log("[HMR] Detected local css modules. Reload all css"); + } reloadAll(); @@ -228,9 +245,13 @@ module.exports = function (moduleId, options) { } if (reloaded) { - console.log("[HMR] css reload %s", src.join(" ")); + if (logLevel <= logLevels.info) { + console.log("[HMR] css reload %s", src.join(" ")); + } } else { - console.log("[HMR] Reload all css"); + if (logLevel <= logLevels.info) { + console.log("[HMR] Reload all css"); + } reloadAll(); } diff --git a/src/loader.js b/src/loader.js index d2348eaa..71e2315e 100644 --- a/src/loader.js +++ b/src/loader.js @@ -26,6 +26,7 @@ function hotLoader(content, context) { )})(module.id, ${JSON.stringify({ ...context.options, locals: !!context.locals, + logLevel: context.logLevel, })}); module.hot.dispose(cssReload); ${accept} @@ -165,8 +166,10 @@ export function pitch(request) { let resultSource = `// extracted by ${pluginName}`; + const logLevel = this._compilation.options.devServer?.client?.logging; + resultSource += this.hot - ? hotLoader(result, { context: this.context, options, locals }) + ? hotLoader(result, { context: this.context, options, locals, logLevel }) : result; return callback(null, resultSource);