Skip to content

Commit

Permalink
fix(dev): show first compilation error when build fails
Browse files Browse the repository at this point in the history
  • Loading branch information
pcattori committed Apr 26, 2023
1 parent 438cb1b commit 1e81821
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 5 deletions.
5 changes: 5 additions & 0 deletions .changeset/thin-knives-try.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@remix-run/dev": patch
---

show first compilation error instead of cancelation errors
14 changes: 9 additions & 5 deletions packages/remix-dev/compiler/compiler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,13 @@ export let create = async (ctx: Context): Promise<Compiler> => {
};

let compile = async () => {
let errCancel = (error: unknown) => {
let error: unknown | undefined = undefined;
let errCancel = (thrown: unknown) => {
if (error === undefined) {
error = thrown;
}
cancel();
return err(error);
return err(thrown);
};

// reset channels
Expand All @@ -69,7 +73,7 @@ export let create = async (ctx: Context): Promise<Compiler> => {

// css compilation
let css = await tasks.css;
if (!css.ok) throw css.error;
if (!css.ok) throw error ?? css.error;

// css bundle
let cssBundleHref =
Expand All @@ -87,7 +91,7 @@ export let create = async (ctx: Context): Promise<Compiler> => {
// js compilation (implicitly writes artifacts/js)
// TODO: js task should not return metafile, but rather js assets
let js = await tasks.js;
if (!js.ok) throw js.error;
if (!js.ok) throw error ?? js.error;
let { metafile, hmr } = js.value;

// artifacts/manifest
Expand All @@ -102,7 +106,7 @@ export let create = async (ctx: Context): Promise<Compiler> => {

// server compilation
let server = await tasks.server;
if (!server.ok) throw server.error;
if (!server.ok) throw error ?? server.error;
// artifacts/server
writes.server = Server.write(ctx.config, server.value);

Expand Down

0 comments on commit 1e81821

Please sign in to comment.