implements #9658
BREAKING CHANGES:
Possibly breaking if a project has a main field set in the nativescript.config.ts - since after this lands, this value will be used instead of package.json main.
The impact is likely very small, the steps to migrate:
(Option A) remove main from nativescript.config.ts if set
(Option B) update main to the correct path in nativescript.config.ts if set incorrectly
* feat(webpack): support NG 13 and zone async/await
* chore: cleanup
* chore: remove require.resolve and update snapshots
Co-authored-by: Igor Randjelovic <rigor789@gmail.com>
* fix(webpack): respect hmr flag
* fix(webpack): ensure correct loader order is used
* chore: cleanup
Co-authored-by: Igor Randjelovic <rigor789@gmail.com>
* feat: use raw-loader for all css but app.s?css
* feat: use angular css rules for entire app dir
Co-authored-by: Eduardo Speroni <edusperoni@gmail.com>
* 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.