rsnext/packages/next/build/webpack/loaders/error-loader.ts
Tim Neutkens cbc52d1b31
Update loader-utils (#30743)
Co-authored-by: jj@jjsweb.site <jj@jjsweb.site>
Co-authored-by: Steven <steven@ceriously.com>
Co-authored-by: Jiachi Liu <inbox@huozhi.im>
2021-11-02 16:13:15 +01:00

26 lines
676 B
TypeScript

import chalk from 'chalk'
import path from 'path'
import { webpack } from 'next/dist/compiled/webpack/webpack'
const ErrorLoader: webpack.loader.Loader = function () {
// @ts-ignore exists
const options = this.getOptions() || {}
const { reason = 'An unknown error has occurred' } = options
const resource = this._module?.issuer?.resource ?? null
const context = this.rootContext ?? this._compiler?.context
const issuer = resource
? context
? path.relative(context, resource)
: resource
: null
const err = new Error(
reason + (issuer ? `\nLocation: ${chalk.cyan(issuer)}` : '')
)
this.emitError(err)
}
export default ErrorLoader