From 32f4a50f25e139676f53ad19de9b3f2760d02203 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Thu, 23 Aug 2018 11:09:02 -0400 Subject: [PATCH] show which file is causing an error/warning --- src/api/interfaces.ts | 4 ++-- src/cli/dev.ts | 16 +++++++++------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/api/interfaces.ts b/src/api/interfaces.ts index e1ac627..381877a 100644 --- a/src/api/interfaces.ts +++ b/src/api/interfaces.ts @@ -26,8 +26,8 @@ export type InvalidEvent = { export type BuildEvent = { type: string; - errors: Array<{ message: string, duplicate: boolean }>; - warnings: Array<{ message: string, duplicate: boolean }>; + errors: Array<{ file: string, message: string, duplicate: boolean }>; + warnings: Array<{ file: string, message: string, duplicate: boolean }>; duration: number; webpack_stats: any; } diff --git a/src/cli/dev.ts b/src/cli/dev.ts index 17eab11..afbbc2f 100644 --- a/src/cli/dev.ts +++ b/src/cli/dev.ts @@ -13,7 +13,7 @@ export function dev(opts: { port: number, open: boolean }) { watcher.on('ready', (event: events.ReadyEvent) => { if (first) { - console.log(`${colors.bold.cyan(`> Listening on http://localhost:${event.port}`)}`); + console.log(colors.bold.cyan(`> Listening on http://localhost:${event.port}`)); if (opts.open) child_process.exec(`open http://localhost:${event.port}`); first = false; } @@ -35,20 +35,21 @@ export function dev(opts: { port: number, open: boolean }) { }); watcher.on('error', (event: events.ErrorEvent) => { - console.log(`${colors.red(`✗ ${event.type}`)}`); - console.log(`${colors.red(event.message)}`); + console.log(colors.red(`✗ ${event.type}`)); + console.log(colors.red(event.message)); }); watcher.on('fatal', (event: events.FatalEvent) => { - console.log(`${colors.bold.red(`> ${event.message}`)}`); + console.log(colors.bold.red(`> ${event.message}`)); if (event.log) console.log(event.log); }); watcher.on('build', (event: events.BuildEvent) => { if (event.errors.length) { - console.log(`${colors.bold.red(`✗ ${event.type}`)}`); + console.log(colors.bold.red(`✗ ${event.type}`)); event.errors.filter(e => !e.duplicate).forEach(error => { + if (error.file) console.log(colors.bold(error.file)); console.log(error.message); }); @@ -57,9 +58,10 @@ export function dev(opts: { port: number, open: boolean }) { console.log(`${hidden} duplicate ${hidden === 1 ? 'error' : 'errors'} hidden\n`); } } else if (event.warnings.length) { - console.log(`${colors.bold.yellow(`• ${event.type}`)}`); + console.log(colors.bold.yellow(`• ${event.type}`)); event.warnings.filter(e => !e.duplicate).forEach(warning => { + if (warning.file) console.log(colors.bold(warning.file)); console.log(warning.message); }); @@ -72,7 +74,7 @@ export function dev(opts: { port: number, open: boolean }) { } }); } catch (err) { - console.log(`${colors.bold.red(`> ${err.message}`)}`); + console.log(colors.bold.red(`> ${err.message}`)); process.exit(1); } } \ No newline at end of file