If the call to wasm-pack build fails, yarn (which runs webpack --mode production) still returns an error code of 0. I traced the problem to this bit of code:
compiler.hooks.thisCompilation.tap('WasmPackPlugin', (compilation) => {
// Super hacky, needed to workaround a bug in Webpack which causes
// thisCompilation to be triggered twice on the first compilation.
if (first) {
first = false;
} else {
// This is needed in order to gracefully handle errors in Webpack,
// since Webpack has its own custom error system.
if (this.error != null) {
compilation.errors.push(this.error);
}
}
});
Since first is true (at least in the cases I tested), the else branch never triggers, and so no error is reported back to webpack. By moving the
if (this.error != null) {
compilation.errors.push(this.error);
}
bit into the if branch, I got the behavior I expected; i.e. the output from yarn is
ERROR in Rust compilation.
error Command failed with exit code 2.
instead of
If the call to
wasm-pack buildfails,yarn(which runswebpack --mode production) still returns an error code of0. I traced the problem to this bit of code:Since
firstis true (at least in the cases I tested), theelsebranch never triggers, and so no error is reported back to webpack. By moving thebit into the
ifbranch, I got the behavior I expected; i.e. the output from yarn isinstead of