diff --git a/packages/config/types/index.d.ts b/packages/config/types/index.d.ts index 021775e726b0..52e8a8abadd0 100644 --- a/packages/config/types/index.d.ts +++ b/packages/config/types/index.d.ts @@ -14,6 +14,7 @@ import { NuxtConfigurationServer } from './server' import { NuxtConfigurationServerMiddleware } from './server-middleware' import { NuxtConfigurationVueConfiguration } from './vue-configuration' import { NuxtConfigurationWatchers } from './watchers' +import { NuxtConfigurationLogs } from './logs' type ExtendableConfiguration = { [key: string]: any } @@ -49,6 +50,7 @@ export default interface NuxtConfiguration extends ExtendableConfiguration { 'vue.config'?: NuxtConfigurationVueConfiguration watch?: string[] watchers?: NuxtConfigurationWatchers + logs: NuxtConfigurationLogs } export { diff --git a/packages/config/types/logs.ts b/packages/config/types/logs.ts new file mode 100644 index 000000000000..831278189760 --- /dev/null +++ b/packages/config/types/logs.ts @@ -0,0 +1,3 @@ +export interface NuxtConfigurationLogs { + ignoreDevSSR: boolean +} diff --git a/packages/vue-renderer/src/renderers/ssr.js b/packages/vue-renderer/src/renderers/ssr.js index e045b8ecbf85..85fee4c4f893 100644 --- a/packages/vue-renderer/src/renderers/ssr.js +++ b/packages/vue-renderer/src/renderers/ssr.js @@ -39,19 +39,25 @@ export default class SSRRenderer extends BaseRenderer { } async devRenderToString(renderContext) { - const logs = [] - const devReporter = { - log(logObj) { - if (logObj.args[0] instanceof Error) { - logObj.args[0] = logObj.args[0].stack + if (this.options.logs && !this.options.logs.ignoreDevSSR) { + const logs = [] + const devReporter = { + log(logObj) { + if (logObj.args[0] instanceof Error) { + logObj.args[0] = logObj.args[0].stack + } + logs.push(logObj) } - logs.push(logObj) } + consola.addReporter(devReporter) } - consola.addReporter(devReporter) + const APP = await this.vueRenderer.renderToString(renderContext) - consola.removeReporter(devReporter) - renderContext.nuxt.logs = logs + + if (this.options.logs && !this.options.logs.ignoreDevSSR) { + consola.removeReporter(devReporter) + renderContext.nuxt.logs = logs + } return APP }