mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
fix(webpack): don't ignore compilation errors (#9369)
* fix(webpack): Fail build in case of compilation errors. WebPack's own documentation states that the `err` object **will not** include compilation errors. https://webpack.js.org/api/node/#webpack This fix addresses compilation errors by setting the correct `process.exitCode` looking at the result of the `stats.hasErrors()` call. * fix(tsc): Ensure that TypeScript compilation errors are handled. The `async` flag of the `fork-ts-checker-webpack-plugin` will (by default in development mode) avoid reporting any errors detected by `tsc` back to webpack: https://github.com/TypeStrong/fork-ts-checker-webpack-plugin#options > If `true` reports issues **after** webpack's compilation is done. > Thanks to that it doesn't block the compilation. The problem in this case is that any compilation error will be then undetectable by the `WatchStatePlugin` which will happily tell the NativeScript CLI to continue with the build process. * fix(cli): Do not send the `compilation` message to the CLI on errors. When the compilation fails, this patch will prevent for the `compilation` message to be sent back to the CLI, preventing broken builds hitting the device.
This commit is contained in:
@@ -48,9 +48,15 @@ export class WatchStatePlugin {
|
||||
isWatchMode ? messages.startWatching : messages.compilationComplete
|
||||
);
|
||||
|
||||
// Do not notify the CLI if the compilation failed
|
||||
const stats = compilation.getStats();
|
||||
if (stats.hasErrors()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// logic taken from CleanWebpackPlugin
|
||||
const assets =
|
||||
compilation.getStats().toJson(
|
||||
stats.toJson(
|
||||
{
|
||||
assets: true,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user