2278 Commits

Author SHA1 Message Date
Alan Agius
52c6c3df33
fix(@angular-devkit/build-angular): correctly extract messages when using cached build (#22266)
* fix(@angular-devkit/build-angular): correctly extract messages when using cached build

Extracted messages are not part of Webpack pipeline and hence they cannot be retrieved from cache. Therefore, we need to mark the extraction loader as non cacheable.

Closes #22264

* fixup! fix(@angular-devkit/build-angular): correctly extract messages when using cached build
2021-12-01 13:48:58 -08:00
Alan Agius
7408511da5 fix(@angular-devkit/build-angular): display cleaner errors
Before:
```
✔ Browser application bundle generation complete.

Initial Chunk Files | Names         |   Raw Size
styles.js           | styles        |    9.47 kB |
runtime.js          | runtime       |    4.98 kB |
polyfills.js        | polyfills     |    1.81 kB |
vendor.js           | vendor        | 1012 bytes |
main.js             | main          | 1004 bytes |

                    | Initial Total |   18.24 kB

Build at: 2021-12-01T15:36:51.797Z - Hash: fe036e992695bafa - Time: 2775ms

./node_modules/css-loader/dist/runtime/api.js - Error: Module build failed (from ./node_modules/@ngtools/webpack/src/ivy/index.js):
Error: Cannot use a JavaScript or TypeScript file (/Users/alanagius/cli-reproductions/error-testing/src/app/app.component.ts) in a component's styleUrls or templateUrl.
    at /Users/alanagius/cli-reproductions/error-testing/node_modules/@ngtools/webpack/src/ivy/loader.js:75:34

./node_modules/css-loader/dist/runtime/sourceMaps.js - Error: Module build failed (from ./node_modules/@ngtools/webpack/src/ivy/index.js):
Error: Cannot use a JavaScript or TypeScript file (/Users/alanagius/cli-reproductions/error-testing/src/app/app.component.ts) in a component's styleUrls or templateUrl.
    at /Users/alanagius/cli-reproductions/error-testing/node_modules/@ngtools/webpack/src/ivy/loader.js:75:34

./node_modules/webpack-dev-server/client/index.js?protocol=auto%3A&username=&password=&hostname=0.0.0.0&port=0&pathname=%2Fws&logging=info&reconnect=10 - Error: Module build failed (from ./node_modules/@ngtools/webpack/src/ivy/index.js):
Error: Cannot use a JavaScript or TypeScript file (/Users/alanagius/cli-reproductions/error-testing/src/app/app.component.ts) in a component's styleUrls or templateUrl.
    at /Users/alanagius/cli-reproductions/error-testing/node_modules/@ngtools/webpack/src/ivy/loader.js:75:34

./src/main.ts - Error: Module build failed (from ./node_modules/@ngtools/webpack/src/ivy/index.js):
Error: Cannot use a JavaScript or TypeScript file (/Users/alanagius/cli-reproductions/error-testing/src/app/app.component.ts) in a component's styleUrls or templateUrl.
    at /Users/alanagius/cli-reproductions/error-testing/node_modules/@ngtools/webpack/src/ivy/loader.js:75:34
    at processTicksAndRejections (internal/process/task_queues.js:95:5)

./src/polyfills.ts - Error: Module build failed (from ./node_modules/@ngtools/webpack/src/ivy/index.js):
Error: Cannot use a JavaScript or TypeScript file (/Users/alanagius/cli-reproductions/error-testing/src/app/app.component.ts) in a component's styleUrls or templateUrl.
    at /Users/alanagius/cli-reproductions/error-testing/node_modules/@ngtools/webpack/src/ivy/loader.js:75:34
    at processTicksAndRejections (internal/process/task_queues.js:95:5)

./src/styles.css - Error: Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
HookWebpackError: Module build failed (from ./node_modules/@ngtools/webpack/src/ivy/index.js):
Error: Cannot use a JavaScript or TypeScript file (/Users/alanagius/cli-reproductions/error-testing/src/app/app.component.ts) in a component's styleUrls or templateUrl.
    at /Users/alanagius/cli-reproductions/error-testing/node_modules/@ngtools/webpack/src/ivy/loader.js:75:34
    at tryRunOrWebpackError (/Users/alanagius/cli-reproductions/error-testing/node_modules/webpack/lib/HookWebpackError.js:88:9)
    at __webpack_require_module__ (/Users/alanagius/cli-reproductions/error-testing/node_modules/webpack/lib/Compilation.js:4979:12)
    at __webpack_require__ (/Users/alanagius/cli-reproductions/error-testing/node_modules/webpack/lib/Compilation.js:4936:18)
    at Module.<anonymous> (/Users/alanagius/cli-reproductions/error-testing/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].rules[0].oneOf[1].use[1]!/Users/alanagius/cli-reproductions/error-testing/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].rules[0].oneOf[1].use[2]!/Users/alanagius/cli-reproductions/error-testing/src/styles.css:5:109)
    at /Users/alanagius/cli-reproductions/error-testing/node_modules/webpack/lib/javascript/JavascriptModulesPlugin.js:432:11
    at Hook.eval [as call] (eval at create (/Users/alanagius/cli-reproductions/error-testing/node_modules/tapable/lib/HookCodeFactory.js:19:10), <anonymous>:7:1)
    at /Users/alanagius/cli-reproductions/error-testing/node_modules/webpack/lib/Compilation.js:4981:39
    at tryRunOrWebpackError (/Users/alanagius/cli-reproductions/error-testing/node_modules/webpack/lib/HookWebpackError.js:83:7)
    at __webpack_require_module__ (/Users/alanagius/cli-reproductions/error-testing/node_modules/webpack/lib/Compilation.js:4979:12)
    at __webpack_require__ (/Users/alanagius/cli-reproductions/error-testing/node_modules/webpack/lib/Compilation.js:4936:18)
-- inner error --
Error: Module build failed (from ./node_modules/@ngtools/webpack/src/ivy/index.js):
Error: Cannot use a JavaScript or TypeScript file (/Users/alanagius/cli-reproductions/error-testing/src/app/app.component.ts) in a component's styleUrls or templateUrl.
    at /Users/alanagius/cli-reproductions/error-testing/node_modules/@ngtools/webpack/src/ivy/loader.js:75:34
    at Object.<anonymous> (/Users/alanagius/cli-reproductions/error-testing/node_modules/@angular-devkit/build-angular/src/babel/webpack-loader.js??ruleSet[1].rules[1].use[0]!/Users/alanagius/cli-reproductions/error-testing/node_modules/@ngtools/webpack/src/ivy/index.js!/Users/alanagius/cli-reproductions/error-testing/node_modules/source-map-loader/dist/cjs.js??ruleSet[1].rules[2]!/Users/alanagius/cli-reproductions/error-testing/node_modules/css-loader/dist/runtime/sourceMaps.js:1:7)
    at /Users/alanagius/cli-reproductions/error-testing/node_modules/webpack/lib/javascript/JavascriptModulesPlugin.js:432:11
    at Hook.eval [as call] (eval at create (/Users/alanagius/cli-reproductions/error-testing/node_modules/tapable/lib/HookCodeFactory.js:19:10), <anonymous>:7:1)
    at /Users/alanagius/cli-reproductions/error-testing/node_modules/webpack/lib/Compilation.js:4981:39
    at tryRunOrWebpackError (/Users/alanagius/cli-reproductions/error-testing/node_modules/webpack/lib/HookWebpackError.js:83:7)
    at __webpack_require_module__ (/Users/alanagius/cli-reproductions/error-testing/node_modules/webpack/lib/Compilation.js:4979:12)
    at __webpack_require__ (/Users/alanagius/cli-reproductions/error-testing/node_modules/webpack/lib/Compilation.js:4936:18)
    at Module.<anonymous> (/Users/alanagius/cli-reproductions/error-testing/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].rules[0].oneOf[1].use[1]!/Users/alanagius/cli-reproductions/error-testing/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].rules[0].oneOf[1].use[2]!/Users/alanagius/cli-reproductions/error-testing/src/styles.css:5:109)
    at /Users/alanagius/cli-reproductions/error-testing/node_modules/webpack/lib/javascript/JavascriptModulesPlugin.js:432:11
    at Hook.eval [as call] (eval at create (/Users/alanagius/cli-reproductions/error-testing/node_modules/tapable/lib/HookCodeFactory.js:19:10), <anonymous>:7:1)

Generated code for /Users/alanagius/cli-reproductions/error-testing/node_modules/@angular-devkit/build-angular/src/babel/webpack-loader.js??ruleSet[1].rules[1].use[0]!/Users/alanagius/cli-reproductions/error-testing/node_modules/@ngtools/webpack/src/ivy/index.js!/Users/alanagius/cli-reproductions/error-testing/node_modules/source-map-loader/dist/cjs.js??ruleSet[1].rules[2]!/Users/alanagius/cli-reproductions/error-testing/node_modules/css-loader/dist/runtime/sourceMaps.js
1 | throw new Error("Module build failed (from ./node_modules/@ngtools/webpack/src/ivy/index.js):\nError: Cannot use a JavaScript or TypeScript file (/Users/alanagius/cli-reproductions/error-testing/src/app/app.component.ts) in a component's styleUrls or templateUrl.\n    at /Users/alanagius/cli-reproductions/error-testing/node_modules/@ngtools/webpack/src/ivy/loader.js:75:34");

Generated code for /Users/alanagius/cli-reproductions/error-testing/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].rules[0].oneOf[1].use[1]!/Users/alanagius/cli-reproductions/error-testing/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].rules[0].oneOf[1].use[2]!/Users/alanagius/cli-reproductions/error-testing/src/styles.css
 1 | __webpack_require__.r(__webpack_exports__);
 2 | /* harmony export */ __webpack_require__.d(__webpack_exports__, {
 3 | /* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
 4 | /* harmony export */ });
 5 | /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/sourceMaps.js */ "/Users/alanagius/cli-reproductions/error-testing/node_modules/@angular-devkit/build-angular/src/babel/webpack-loader.js??ruleSet[1].rules[1].use[0]!/Users/alanagius/cli-reproductions/error-testing/node_modules/@ngtools/webpack/src/ivy/index.js!/Users/alanagius/cli-reproductions/error-testing/node_modules/source-map-loader/dist/cjs.js??ruleSet[1].rules[2]!/Users/alanagius/cli-reproductions/error-testing/node_modules/css-loader/dist/runtime/sourceMaps.js");
 6 | /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
 7 | /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ "/Users/alanagius/cli-reproductions/error-testing/node_modules/@angular-devkit/build-angular/src/babel/webpack-loader.js??ruleSet[1].rules[1].use[0]!/Users/alanagius/cli-reproductions/error-testing/node_modules/@ngtools/webpack/src/ivy/index.js!/Users/alanagius/cli-reproductions/error-testing/node_modules/source-map-loader/dist/cjs.js??ruleSet[1].rules[2]!/Users/alanagius/cli-reproductions/error-testing/node_modules/css-loader/dist/runtime/api.js");
 8 | /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
 9 | // Imports
10 |
11 |
12 | var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
13 | // Module
14 | ___CSS_LOADER_EXPORT___.push([module.id, "/* You can add global styles to this file, and also import other style files */\n", "",{"version":3,"sources":["webpack://./src/styles.css"],"names":[],"mappings":"AAAA,8EAA8E","sourcesContent":["/* You can add global styles to this file, and also import other style files */\n"],"sourceRoot":""}]);
15 | // Exports
16 | /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
17 |
```

After
```
✔ Browser application bundle generation complete.

Initial Chunk Files   | Names         |   Raw Size
styles.css, styles.js | styles        |  212.27 kB |
polyfills.js          | polyfills     |  211.85 kB |
vendor.js             | vendor        |  211.02 kB |
runtime.js            | runtime       |    6.86 kB |
main.js               | main          | 1004 bytes |

                      | Initial Total |  642.98 kB

Build at: 2021-12-01T15:45:54.794Z - Hash: 3d8eb5b30e61ed25 - Time: 2883ms

./src/main.ts - Error: Module build failed (from ./node_modules/@ngtools/webpack/src/ivy/index.js):
Error: Cannot use a JavaScript or TypeScript file (/Users/alanagius/cli-reproductions/error-testing/src/app/app.component.ts) in a component's styleUrls or templateUrl.
    at /Users/alanagius/cli-reproductions/error-testing/node_modules/@ngtools/webpack/src/ivy/loader.js:75:34
    at processTicksAndRejections (internal/process/task_queues.js:95:5)

./src/polyfills.ts - Error: Module build failed (from ./node_modules/@ngtools/webpack/src/ivy/index.js):
Error: Cannot use a JavaScript or TypeScript file (/Users/alanagius/cli-reproductions/error-testing/src/app/app.component.ts) in a component's styleUrls or templateUrl.
    at /Users/alanagius/cli-reproductions/error-testing/node_modules/@ngtools/webpack/src/ivy/loader.js:75:34
    at processTicksAndRejections (internal/process/task_queues.js:95:5)

** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **
```
2021-12-01 13:08:33 -08:00
Renovate Bot
c4cb47e0d9 build: update all non-major dependencies 2021-12-01 12:53:15 -08:00
Alan Agius
6bdc26c609 fix(@angular-devkit/build-angular): don't watch nested node_modules when polling is enabled
Previously the glob didn't catch nested `node_modules`.

Closes #22163
2021-11-30 09:28:56 -08:00
Renovate Bot
54885470b4 build: update all non-major dependencies 2021-11-30 09:27:24 -08:00
Renovate Bot
1a9da01b3a build: update all non-major dependencies 2021-11-29 11:17:36 -08:00
Alan Agius
b3f71c51bf fix(@ngtools/webpack): JIT mode CommonJS accessing inexistent default property
With this change we fix an issue in JIT mode were we try to access an inexistent `default` property of styles modules when emitted in CJS.

Also, we now emit templates modules without the default property when not targeting ES2015 or greater to normalize the how to `require` templates and styles.

Closes #21588
2021-11-29 10:30:56 -08:00
Alan Agius
4c288b8bd2 fix(@angular-devkit/build-angular): lazy modules bundle budgets
Since the introduction of Webpack 5 in version 12 bundle budgets for lazy chunks  have been broken due to the removal of the `NamedLazyChunksPlugin`. 21a49e6492/packages/angular_devkit/build_angular/src/webpack/plugins/named-chunks-plugin.ts (L8)

With this change we re-introduce a similar plugin to allow setting bundle budgets on lazy chunks.

This issue has also been reported on Slack by a GDE https://angular-team.slack.com/archives/C08M4JKNH/p1637115196222300

Closes: #11019
2021-11-29 10:14:58 -08:00
Alan Agius
1abd1732f7 test(@angular-devkit/build-angular): refactor bundle budgets option test to use new test harness
With this change we replace the bundle budgets specs to use the new test harness.
2021-11-29 10:14:58 -08:00
Charles Lyding
9300545e61 feat(@angular-devkit/build-angular): watch i18n translation files with dev server
When using i18n with the dev server, the translation files will now be linked as a dependency to any file containing translated text. This allows translation files to be watched and the application to be rebuilt using the changed translation files.

Closes #16341
2021-11-29 09:50:10 -08:00
Renovate Bot
fe03267d38 build: update all non-major dependencies 2021-11-24 12:36:55 +01:00
David-Emmanuel DIVERNOIS
5805c78599 fix(@angular-devkit/build-angular): transform remapped sourcemap into a plain object
`remapping` returns a SourceMap object and not a plain object. This causes
Babel to fail with `don't know how to turn this value into a node` when
invoked from `istanbul-lib-instrument` as Babel checks if the value is a
plain object.

See: 780aa48d2a/packages/babel-types/src/converters/valueToNode.ts (L115-L130)

This was previously fixed in commit da1733cc69eeac1417e47df23389da1658850ada
but the fix was lost as part of commit 0c44ab305836abab26dc81d7c962f330898213fd.
2021-11-23 19:11:06 +01:00
Alan Agius
3c681b68d7 feat(@angular-devkit/build-angular): set dir attribute when using localization
We add the `dir` (direction) HTML attribute when using localization.

Closes #16047
2021-11-23 08:31:25 +01:00
Alan Agius
bc17cf0cdd feat(@angular-devkit/build-angular): colorize file raw sizes based on failing budgets 2021-11-22 22:18:15 +01:00
Renovate Bot
3925768e7e build: update all non-major dependencies 2021-11-22 08:55:46 +01:00
Renovate Bot
4f8674af23 build: update dependency source-map-support to v0.5.21 2021-11-19 14:35:57 +01:00
Renovate Bot
8fb89cce76 build: update all non-major dependencies 2021-11-18 21:09:20 +01:00
Renovate Bot
4c37256c53 build: update dependency copy-webpack-plugin to v10 2021-11-18 11:04:07 +01:00
Alan Agius
789ddfaeb0 perf(@angular-devkit/build-angular): disable webpack backwards compatible APIs
See https://github.com/webpack/webpack/releases/tag/v5.62.0 and https://github.com/webpack/webpack/issues/14580 for more context.
2021-11-17 15:03:48 -08:00
Alan Agius
c7b2870188 refactor(@angular-devkit/build-angular): replace usage of webpack-dev-server deprecated https option
See: https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md#450-2021-11-13
2021-11-17 15:03:17 -08:00
Charles Lyding
bc85637603 feat(@angular-devkit/build-angular): add estimated transfer size to build output report
When optimizations are enabled (either scripts or styles), an additional column will now be present in the output report shown in the console for an application build. This additonal column will display the estimated transfer size for each file as well as the total initial estimated transfer size for the initial files. The estimated transfer size is determined by calculating the compressed size of the file using brotli's default settings. In a development configuration (a configuration with optimizations disabled), the calculations are not performed to avoid any potential increase in rebuild speed due to the large size of unoptimized files.

Closes: #21394
2021-11-17 15:02:56 -08:00
Renovate Bot
3aa3bfc02b build: update dependency license-webpack-plugin to v4 2021-11-17 13:52:35 -08:00
Renovate Bot
22f8e8a83a build: update all non-major dependencies 2021-11-17 09:32:28 +00:00
Charles Lyding
6d0f99a2de feat(@angular-devkit/build-angular): support JSON comments in dev-server proxy configuration file
The `proxyConfig` option for the `dev-server` builder now supports JSON files containing comments and trailing commas.
Several additional tests regarding the use of ESM and CommonJS JavaScript configuration files were also added to reduce the likelihood of future regressions.

Closes: #21862
2021-11-16 10:50:39 +00:00
Renovate Bot
c20153db81 build: update all non-major dependencies 2021-11-10 14:24:25 -05:00
Renovate Bot
f049feeace build: update all non-major dependencies 2021-11-09 13:04:00 -05:00
Alan Agius
f5b2d7e031 refactor: remove no longer needed caniuse-lite dependency 2021-11-09 13:03:34 -05:00
Alan Agius
5990ed91cd fix(@angular-devkit/build-angular): improve sourcemap fidelity during code-coverage
We now pass the input sourcemap to istanbul babel plugin, since this is used directly by the instrumenter d58c92a7de/src/index.js (L126-L129) and is needed to remapped instrumented code back to the original source.

Previously, the lack of this caused incorrect reports of uncovered and coverage code and also incorrectly mappings in the HTML report.

Closes #22118
2021-11-09 11:08:03 -05:00
Renovate Bot
1a2467560c build: update all non-major dependencies 2021-11-08 10:20:09 -05:00
Alan Agius
b3e588801d fix(@angular-devkit/build-angular): suppress "@charset" must be the first rule in the file warning
esbuild will issue a warning when `@charset` is in the middle of the file. This is caused by css-loader will concats the file and doesn't hoist `@charset`, (https://github.com/webpack-contrib/css-loader/issues/1212).

While, esbuild will issue a warning regarding the above, it will hoist to the very top.

In many cases, this warning is not actionable by the users as the `@charset` would be likely specified in 3rd party libs.

Closes #22097
2021-11-08 10:17:44 -05:00
Alan Agius
3a89358d33 fix(@angular-devkit/build-angular): don't show [NG HMR] Unknown input type when restoring file type input 2021-11-04 16:35:09 -04:00
Renovate Bot
37b9493ed3 build: update all non-major dependencies 2021-11-04 12:58:51 -04:00
Renovate Bot
0d864a4239 build: update angular 2021-11-04 12:16:49 -04:00
Charles Lyding
e1bac5bbb3 fix(@angular-devkit/build-angular): update Angular peer dependencies to v13.1 prerelease
This change allows framework v13.1 prelease versions to be used with the Angular CLI 13.1 preleases without peer dependency warnings.
2021-11-04 12:15:13 -04:00
Alan Agius
47fd128a06 fix(@angular-devkit/build-angular): don't restore input of type file during HMR
```
Uncaught DOMException: Failed to set the 'value' property on 'HTMLInputElement': This input element accepts a filename, which may only be programmatically set to the empty string.
```

Closes #22084
2021-11-04 12:14:03 -04:00
Renovate Bot
73a2a28291 build: update dependency core-js to v3.19.1 2021-11-03 08:24:26 +01:00
Alan Agius
d526e87506 refactor(@angular-devkit/build-angular): clean up webpack configurations
With this change we remove the worker and typescript configuration.
2021-11-03 08:23:34 +01:00
Renovate Bot
5b186c15b7 build: update all non-major dependencies 2021-11-02 16:58:48 +01:00
Charles Lyding
d9e819313a fix(@angular-devkit/build-angular): remove potential race condition in i18n worker execution
There was previously the potential for two workers to complete quickly at the same time which could result in one of the results not being propagated to the remainder of the system. This situation has now been corrected by removing the worker execution at a later point in the process.

(cherry picked from commit 802b1b0378c1816dbfd8f4320b5d69e82f0c7aa6)
2021-11-02 16:58:32 +01:00
Alan Agius
cec0ef0855 fix(@angular-devkit/build-angular): use es2015 when generating server bundles
ES2020 can contain JS syntax which are not compatible with all supported Node.js versions such as optional chaining.
2021-11-01 21:10:00 +01:00
Alan Agius
d90e8a7746 build: update @types/sass to ^1.43.0 2021-11-01 19:39:09 +01:00
Charles Lyding
b6fa4adc0d build: add all used babel plugins to bazel BUILD file 2021-11-01 18:44:03 +01:00
Alan Agius
cf34e2f254 build: update all non-major dependencies 2021-11-01 13:37:47 +01:00
Alan Agius
5a2a2fc297 refactor(@angular-devkit/build-angular): unify webpack configurations
With this change we unify most of the webpack configuration into the common configuration. A number of lengthy functions and code portions have been moved into a seperate file to make the configuration easier to follow.
2021-10-28 18:04:57 +02:00
Alan Agius
12c88f32cd build: update all non-major dependencies 2021-10-28 15:42:41 +02:00
Alan Agius
70494824df fix(@angular-devkit/build-angular): move @angular/localize detection prior to webpack initialization
Fail faster if `@angular/localize` is not installed and update the error message since now there is a single extraction mode.
2021-10-28 15:31:32 +02:00
Alan Agius
0c44ab3058 fix(@angular-devkit/build-angular): improve sourcemaps fidelity when code coverage is enabled
With this change we replace `@jsdevtools/coverage-istanbul-loader` webpack loader with [`babel-plugin-istanbul`](https://github.com/istanbuljs/babel-plugin-istanbul) which is an official Babel plugin by the istanbuljs team.

Previously, when code coverage was enabled we had multiple Babel runs on the same file. This is because istanbuljs' `instrumentSync` and `instrument` APIs which are used by the Webpack plugin invokes Babel directly 66bc39b3c7/packages/istanbul-lib-instrument/src/instrumenter.js (L98)

By using the babel plugin directly, we avoid this which also improves the sourcemaps correctness and test performance.

Closes #22010
2021-10-27 11:17:17 -05:00
Renovate Bot
6bf379726c build: update all non-major dependencies 2021-10-27 04:44:14 -05:00
Alan Agius
9171fc087a fix(@angular-devkit/build-angular): update critters to version 0.0.12
This change brings in a security fix causes was causes by an outdated dependency. See https://github.com/GoogleChromeLabs/critters/pull/82 for more information.

Also, remote stylesheets are excluded from processing, were previously this caused build failures.

Closes #20794
2021-10-26 04:45:59 -05:00
Alan Agius
6944d9d795 test(@angular-devkit/build-angular): update tests to use xxhash64
`loader-utils` version 3, introduced a breaking change with uses the faster `xxhash64` hashing algo.
2021-10-21 05:41:37 -05:00