diff --git a/src/api/dev.ts b/src/api/dev.ts index fb356c8..adfd73a 100644 --- a/src/api/dev.ts +++ b/src/api/dev.ts @@ -199,9 +199,10 @@ class Watcher extends EventEmitter { }); manifest_data = new_manifest_data; - } catch (err) { + } catch (error) { this.emit('error', { - message: err.message + type: 'manifest', + error }); } } @@ -408,11 +409,11 @@ class Watcher extends EventEmitter { }) { compiler.oninvalid(invalid); - compiler.watch((err?: Error, result?: CompileResult) => { - if (err) { + compiler.watch((error?: Error, result?: CompileResult) => { + if (error) { this.emit('error', { type: name, - message: err.message + error }); } else { this.emit('build', { diff --git a/src/cli.ts b/src/cli.ts index 64b3b33..5ebacc9 100755 --- a/src/cli.ts +++ b/src/cli.ts @@ -89,8 +89,16 @@ prog.command('dev') }); watcher.on('error', (event: ErrorEvent) => { - console.log(colors.red(`✗ ${event.type}`)); - console.log(colors.red(event.message)); + const { type, error } = event; + + console.log(colors.bold().red(`✗ ${type}`)); + + if (error.loc && error.loc.file) { + console.log(colors.bold(`${path.relative(process.cwd(), error.loc.file)} (${error.loc.line}:${error.loc.column})`)); + } + + console.log(colors.red(event.error.message)); + if (error.frame) console.log(error.frame); }); watcher.on('fatal', (event: FatalEvent) => { diff --git a/src/core/create_compilers/extract_css.ts b/src/core/create_compilers/extract_css.ts index c35dcf2..47bf99e 100644 --- a/src/core/create_compilers/extract_css.ts +++ b/src/core/create_compilers/extract_css.ts @@ -153,7 +153,7 @@ export default function extract_css(client_result: CompileResult, components: Pa chunks_with_css.add(chunk); }); - const entry = path.resolve(dirs.src, 'app.mjs'); + const entry = path.resolve(dirs.src, 'client.js'); const entry_chunk = client_result.chunks.find(chunk => chunk.modules.indexOf(entry) !== -1); const entry_chunk_dependencies: Set = new Set([entry_chunk]); diff --git a/src/interfaces.ts b/src/interfaces.ts index 8b2f377..f768100 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -69,7 +69,7 @@ export type ReadyEvent = { export type ErrorEvent = { type: string; - message: string; + error: Error; }; export type FatalEvent = {