diff --git a/packages/vite/src/node/build.ts b/packages/vite/src/node/build.ts index d920c766fff085..55efd6b5398229 100644 --- a/packages/vite/src/node/build.ts +++ b/packages/vite/src/node/build.ts @@ -544,7 +544,7 @@ export async function build( }, } - const outputBuildError = (e: RollupError) => { + const mergeRollupError = (e: RollupError) => { let msg = colors.red((e.plugin ? `[${e.plugin}] ` : '') + e.message) if (e.id) { msg += `\nfile: ${colors.cyan( @@ -554,6 +554,11 @@ export async function build( if (e.frame) { msg += `\n` + colors.yellow(e.frame) } + return msg + } + + const outputBuildError = (e: RollupError) => { + const msg = mergeRollupError(e) clearLine() config.logger.error(msg, { error: e }) } @@ -704,7 +709,8 @@ export async function build( } return Array.isArray(outputs) ? res : res[0] } catch (e) { - outputBuildError(e) + e.message = mergeRollupError(e) + clearLine() throw e } finally { if (bundle) await bundle.close() diff --git a/playground/tsconfig-json-load-error/__tests__/tsconfig-json-load-error.spec.ts b/playground/tsconfig-json-load-error/__tests__/tsconfig-json-load-error.spec.ts index b2a3fde698e806..e14a151ad80e2d 100644 --- a/playground/tsconfig-json-load-error/__tests__/tsconfig-json-load-error.spec.ts +++ b/playground/tsconfig-json-load-error/__tests__/tsconfig-json-load-error.spec.ts @@ -11,7 +11,7 @@ import { } from '~utils' const unexpectedTokenSyntaxErrorRE = - /^parsing .* failed: SyntaxError: Unexpected token.*\}.*/ + /(\[vite:esbuild\] )*parsing .* failed: SyntaxError: Unexpected token.*\}.*/ describe.runIf(isBuild)('build', () => { test('should throw an error on build', () => {