mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
Strip ansi codes when logging client side (#3138)
This commit is contained in:
parent
89691cbe0c
commit
a28bbb0ff9
|
@ -54,20 +54,22 @@ export let router
|
||||||
export let ErrorComponent
|
export let ErrorComponent
|
||||||
let ErrorDebugComponent
|
let ErrorDebugComponent
|
||||||
let Component
|
let Component
|
||||||
|
let stripAnsi = (s) => s
|
||||||
|
|
||||||
export default async ({ ErrorDebugComponent: passedDebugComponent } = {}) => {
|
export default async ({ ErrorDebugComponent: passedDebugComponent, stripAnsi: passedStripAnsi } = {}) => {
|
||||||
// Wait for all the dynamic chunks to get loaded
|
// Wait for all the dynamic chunks to get loaded
|
||||||
for (const chunkName of chunks) {
|
for (const chunkName of chunks) {
|
||||||
await pageLoader.waitForChunk(chunkName)
|
await pageLoader.waitForChunk(chunkName)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
stripAnsi = passedStripAnsi || stripAnsi
|
||||||
ErrorDebugComponent = passedDebugComponent
|
ErrorDebugComponent = passedDebugComponent
|
||||||
ErrorComponent = await pageLoader.loadPage('/_error')
|
ErrorComponent = await pageLoader.loadPage('/_error')
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Component = await pageLoader.loadPage(pathname)
|
Component = await pageLoader.loadPage(pathname)
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(`${err.message}\n${err.stack}`)
|
console.error(stripAnsi(`${err.message}\n${err.stack}`))
|
||||||
Component = ErrorComponent
|
Component = ErrorComponent
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,7 +121,7 @@ export async function renderError (error) {
|
||||||
ReactDOM.unmountComponentAtNode(appContainer)
|
ReactDOM.unmountComponentAtNode(appContainer)
|
||||||
|
|
||||||
const errorMessage = `${error.message}\n${error.stack}`
|
const errorMessage = `${error.message}\n${error.stack}`
|
||||||
console.error(errorMessage)
|
console.error(stripAnsi(errorMessage))
|
||||||
|
|
||||||
if (prod) {
|
if (prod) {
|
||||||
const initProps = { err: error, pathname, query, asPath }
|
const initProps = { err: error, pathname, query, asPath }
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import 'react-hot-loader/patch'
|
import 'react-hot-loader/patch'
|
||||||
|
import stripAnsi from 'strip-ansi'
|
||||||
import initNext, * as next from './'
|
import initNext, * as next from './'
|
||||||
import ErrorDebugComponent from '../lib/error-debug'
|
import ErrorDebugComponent from '../lib/error-debug'
|
||||||
import initOnDemandEntries from './on-demand-entries-client'
|
import initOnDemandEntries from './on-demand-entries-client'
|
||||||
|
@ -6,7 +7,7 @@ import initWebpackHMR from './webpack-hot-middleware-client'
|
||||||
|
|
||||||
window.next = next
|
window.next = next
|
||||||
|
|
||||||
initNext({ ErrorDebugComponent })
|
initNext({ ErrorDebugComponent, stripAnsi })
|
||||||
.then((emitter) => {
|
.then((emitter) => {
|
||||||
initOnDemandEntries()
|
initOnDemandEntries()
|
||||||
initWebpackHMR()
|
initWebpackHMR()
|
||||||
|
@ -34,5 +35,5 @@ initNext({ ErrorDebugComponent })
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.error(`${err.message}\n${err.stack}`)
|
console.error(stripAnsi(`${err.message}\n${err.stack}`))
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in a new issue