2436 Commits

Author SHA1 Message Date
Alan Agius
cd2250fe23 fix(@angular-devkit/build-angular): downlevel libraries based on the browserslist configurations
There is no standard for library authors to ship their library in different ES versions, which can result in vendor libraries to ship ES features which are not supported by one or more browsers that the user's application supports.

With this change, we will be downlevelling libraries based on the list of supported browsers which is configured in the browserslist configuration. Previously, we only downlevelled libraries when targeting ES5.

The TypeScript target option will not effect how the libraries get downlevelled.

Closes #23126
2022-05-24 10:02:17 -07:00
Renovate Bot
790a1711bf build: update all non-major dependencies 2022-05-24 09:59:55 -07:00
Alan Agius
432599515d fix(@angular-devkit/build-angular): better handle Windows paths in esbuild experimental builder
With this change we handle several esbuild path issues in Windows.

Closes #23154
2022-05-24 09:57:43 -07:00
Renovate Bot
a7d97c2698 build: update dependency stylus-loader to v7 2022-05-23 10:12:07 -07:00
Alan Agius
076b601c23 fix(@angular-devkit/build-angular): close dev-server on error
When running protractor, previously we didn't close the dev-server correctly when there was an error which caused the process to keep running following https://github.com/angular/angular-cli/pull/23166
2022-05-23 10:09:39 -07:00
Alan Agius
6cbb9413d0 fix(@angular-devkit/build-angular): add debugging and timing information in JavaScript and CSS optimization plugins
This can be useful to debug slow builds.

Example of output
```
LOG from build-angular.JavaScriptOptimizerPlugin
<t> optimize asset: runtime.ad5c30339e926c89.js: 221.959564 ms
<t> optimize asset: polyfills.ec3ffae5bac27204.js: 1071.080092 ms
<t> optimize asset: main.aa8a15155ca2133f.js: 3391.588635 ms
<t> optimize js assets: 3483.799739 ms

LOG from build-angular.CssOptimizerPlugin
<t> optimize asset: styles.d251c5bf54715558.css: 26.569907 ms
<t> optimize css assets: 34.441737 ms
```

```
LOG from build-angular.JavaScriptOptimizerPlugin
<i> polyfills.ec3ffae5bac27204.js restored from cache.
<i> runtime.ad5c30339e926c89.js restored from cache.
<t> optimize asset: main.69fb55a243b46bfa.js: 2618.5191210000003 ms
<t> optimize js assets: 2721.226144 ms

LOG from build-angular.CssOptimizerPlugin
<i> styles.d251c5bf54715558.css restored from cache.
<t> optimize css assets: 12.149169 ms
```
2022-05-20 11:40:36 -07:00
Renovate Bot
1140d73e15 build: update dependency postcss-loader to v7 2022-05-20 11:20:58 -07:00
Renovate Bot
688e32cd3d build: update dependency sass to v1.52.0 2022-05-20 11:20:41 -07:00
Renovate Bot
469d9ec246 build: update dependency copy-webpack-plugin to v11 2022-05-20 11:20:27 -07:00
Renovate Bot
92d365b879 build: update dependency less-loader to v11 2022-05-19 15:02:39 -07:00
Renovate Bot
0fc1c33a7c build: update all non-major dependencies 2022-05-19 15:00:48 -07:00
Alan Agius
b71608195b fix(@angular-devkit/build-angular): close compiler on Karma exit
The webpack compiler was never closed which caused Webpack's shutdown hook c71832f3a9/packages/angular_devkit/build_angular/src/webpack/configs/styles.ts (L113-L114) to never be called and in turn caused the Sass workers never to be termined.
2022-05-18 12:46:05 -04:00
Charles Lyding
b867714c3d build: update peer dependencies to support unreleased 14.1.x prerelease snapshots 2022-05-18 09:36:39 -04:00
Renovate Bot
9fd042dcce build: update all non-major dependencies 2022-05-16 09:13:32 -04:00
Renovate Bot
4be7cdce82 build: update all non-major dependencies 2022-05-12 09:43:13 -04:00
Renovate Bot
73bda262c0 build: update all non-major dependencies 2022-05-10 12:14:33 -07:00
Renovate Bot
70e6c863f6 build: update all non-major dependencies 2022-05-09 10:43:47 -07:00
Kristiyan Kostadinov
0301cf6c10 build: prepare TypeScript 4.7
Expands the version range to allow TypeScript 4.7 and makes the necessary code changes in order to support it.
2022-05-06 15:51:02 -07:00
alkavats1
d52697047a refactor: refactored the code and removed the code smells
refactored the code and removed the code smells
2022-05-06 11:11:13 -07:00
Charles Lyding
5a6f621f86 build: update @angular/localize import to use non-private entry
The `ɵParsedTranslation` type is now exported from the root entry point and can be used without the `private` deep import.
2022-05-06 11:00:55 -07:00
Charles Lyding
0e4e490448 build(@angular-devkit/build-angular): add missing @babel/generator dep to BUILD file 2022-05-04 10:13:18 -07:00
Paul Gschwendtner
156f15e47f build: cleanup references to old master branch
Cleans up all referneces to the old `master` branch.
2022-05-04 09:55:54 -07:00
Renovate Bot
158424fbdc build: update all non-major dependencies 2022-04-29 09:31:05 -07:00
Charles Lyding
7abe212c65 fix(@angular-devkit/build-angular): correctly resolve custom service worker configuration file
Paths within the `angular.json` file should be relative to the location of the `angular.json` file.
The `ngswConfigPath` option was incorrectly using the current working directory for a base path when
a relative configuration path was specified. Most of the time this would work as a build command usually
is executed from the root of the workspace. However, this may not always be the case and for those cases
the actual workspace root is now used to resolve the full path for the service worker configuration file.
2022-04-27 13:45:42 -04:00
Charles Lyding
00186fb93f feat(@angular-devkit/build-angular): add initial experimental esbuild-based application browser builder
An experimental browser application builder (`browser-esbuild`) has been introduced that leverages esbuild as the bundler.
This new builder is compatible with options of the current browser application builder (`browser`) and can be enabled
for experimentation purposes by replacing the `builder` field of `@angular-devkit/build-angular:browser` from an existing
project to `@angular-devkit/build-angular:browser-esbuild`. The builder will generate an ESM-based application and
provides support for ES2015+ compatible output with ES2020 as the default.

This builder is considered experimental and is not recommended for production applications.

Currently not all `browser` builder options and capabilities are supported with this experimental builder.
Additional support for these options may be added in the future.
The following options and capabilities are not currently supported:
* Stylesheet Preprocessors (only CSS styles are supported)
* Angular JIT mode (only AOT is supported)
* Localization [`localize`]
* Watch and dev-server modes [`watch`, `poll`, etc.]
* File replacements [`fileReplacements`]
* License text extraction [`extractLicenses`]
* Bundle budgets [`budgets`]
* Global scripts [`scripts`]
* Build stats JSON output [`statsJson`]
* Deploy URL [`deployURL`]
* CommonJS module warnings (no warnings will be generated for CommonJS package usage)
* Web Workers
* Service workers [`serviceWorker`, `ngswConfigPath`]
2022-04-22 20:45:54 -04:00
Renovate Bot
d6ecb66f32 build: update all non-major dependencies 2022-04-20 11:19:24 -04:00
Charles Lyding
1a160dac00 fix(@angular-devkit/build-angular): ensure karma sourcemap support on Windows
The `glob`-based check when adding the sourcemap support packages to the karma setup was incorrectly
skipping the files due to Windows pathing issues. The `glob`-based check, however, is unneeded due
to the already present `require.resolve` checks for the sourcemap support packages which will
throw if the packages are not present.
2022-04-16 07:42:20 +02:00
Renovate Bot
41982aa286 build: update all non-major dependencies 2022-04-15 09:42:16 +02:00
Alan Agius
d270258dcd build: update dependency glob to v8 2022-04-14 16:50:08 +02:00
Renovate Bot
95954bba04 build: update all non-major dependencies 2022-04-12 10:37:05 -07:00
Alan Agius
be2b268c36 fix(@angular-devkit/build-angular): display debug logs when using the --verbose option
Webpack doesn't display debug logs when setting the log level to verbose.

See: https://webpack.js.org/configuration/other-options/#debug and https://webpack.js.org/configuration/other-options/#level
2022-04-11 11:47:09 -07:00
Renovate Bot
78b3537731 build: update all non-major dependencies 2022-04-08 10:10:14 -07:00
Renovate Bot
4b05c44d4f build: update all non-major dependencies 2022-04-06 13:00:39 -04:00
Renovate Bot
5ebfe805ae build: update all non-major dependencies 2022-04-04 10:04:28 -04:00
Charles Lyding
b8e9e09a51 refactor(@angular-devkit/build-angular): replace most custom path normalize usage with Node.js builtins
During the build initialization phase, many paths are converted back and forth between multiple normalized forms. These conversions involve potentially expensive string operations. The majority of the custom path `normalize` function from `@angular-devkit/core` usages have now been removed in favor of the Node.js builtin path functions. This change reduces the need to perform additional string manipulation where possible.
2022-03-31 17:00:58 -04:00
Renovate Bot
dcc00f4e22 build: update all non-major dependencies 2022-03-31 16:32:49 -04:00
Alan Agius
5922649380 refactor(@angular-devkit/build-angular): replace try/catch block with catch
Since this is a promise the try/catch block will not catch promise rejections which was the reason for the try/catch block.
2022-03-30 20:45:35 +02:00
Alan Agius
371da23be0 fix(@angular-devkit/build-angular): add node_modules prefix to excludes RegExp
Without the `node_modules` prefix, projects named the same as the excluded package names ex: `webpack` will not compile successfully as all files under the mentioned project will be excluded from being requested by the respective loaders.

Closes #22902
2022-03-30 17:46:09 +02:00
Alan Agius
af8dd62b74 refactor(@angular-devkit/build-angular): remove esbuild-check workaround
This check is no longer needed as of `0.14.29` as now esbuild correctly propagates errors.

See: https://github.com/evanw/esbuild/blob/master/CHANGELOG.md#01429
2022-03-30 17:17:15 +02:00
Renovate Bot
6a6386a1ef build: update all non-major dependencies 2022-03-30 17:17:15 +02:00
Alan Agius
fac9cca66b fix(@angular-devkit/build-angular): don't override asset info when updating assets
Currently, we are overriding asset info instead of appending additional data to it.
2022-03-30 15:20:03 +02:00
Alan Agius
2ab77429bb fix(@angular-devkit/build-angular): allow Workers in Stackblitz
This is no longer needed as Stackblitz implemented the missing Node.Js worker APIs.
2022-03-29 13:35:13 +02:00
Renovate Bot
17a7fdcd68 build: update all non-major dependencies 2022-03-26 08:25:40 +01:00
Alan Agius
cea83b2289 build: update build_angular_test_lib to include all non builders spec files 2022-03-24 14:41:26 +01:00
Alan Agius
4b4cecf88f test: update tests to work with Jasmine version 4
These changes include fixes to tests, timeout and stop of architect to make tests work with Jasmine 4.

One noticeable change that when we didn't stop architect through `run.stop()` this causes Bazel to timeout now.

Example
```
-- Test timed out at 2022-03-24 12:07:07 UTC --
/private/var/tmp/_bazel_alanagius/5168427e57f204ca069c602aa7ed1931/sandbox/darwin-sandbox/398/execroot/angular_cli/bazel-out/darwin-fastbuild/bin/packages/angular_devkit/build_angular/build_angular_browser_test.sh.runfiles/angular_cli/packages/angular_devkit/build_angular/build_angular_browser_test.sh: line 424: 41835 Terminated: 15          "${node}" ${LAUNCHER_NODE_OPTIONS[@]+"${LAUNCHER_NODE_OPTIONS[@]}"} ${USER_NODE_OPTIONS[@]+"${USER_NODE_OPTIONS[@]}"} "${MAIN}" ${ARGS[@]+"${ARGS[@]}"} 0<&0
```
2022-03-24 14:41:26 +01:00
Alan Agius
56b44aba74 refactor(@angular-devkit/build-angular): remove types for @discoveryjs/json-ext
This package now ships TypeScript declaration files.
2022-03-24 08:53:24 +01:00
Alan Agius
455aeea12d fix(@angular-devkit/core): add Angular CLI major version as analytics dimension
With this change we replace the custom dimension 8 `AOT Enabled`, with `Angular CLI Major Version`. The motivation behind replacing this dimension is that the there is already an `aot` dimension with id 13 which serves for the same purpose.

More information to why we need a new dimension for the Angular CLI major version can be found #22130

Closes #22130
2022-03-24 08:53:10 +01:00
Renovate Bot
c315b47068 build: update all non-major dependencies 2022-03-23 12:59:21 -07:00
Charles Lyding
966d25b55e fix(@angular-devkit/build-angular): remove unneeded JIT reflect metadata polyfill
Since Angular 8, the CLI has transformed decorator metadata to a form that can be used by the Angular dependency injector without the TDZ limitations of Typescript's decorator metadata emit feature.
As a result, a JIT application compiled with the CLI no longer requires the reflect metadata polyfill that was provided by `core-js`.
This polyfill was also the last remaining usage of the `core-js` package within `@angular-devkit/build-angular` which allows the `core-js` package to also be removed.

Refs: https://github.com/angular/angular-cli/pull/14473 & https://github.com/angular/angular/pull/37382

BREAKING CHANGE: Reflect metadata polyfill is no longer automatically provided in JIT mode
Reflect metadata support is not required by Angular in JIT applications compiled by the CLI.
Applications built in AOT mode did not and will continue to not provide the polyfill.
For the majority of applications, the reflect metadata polyfill removal should have no effect.
However, if an application uses JIT mode and also uses the previously polyfilled reflect metadata JavaScript APIs, the polyfill will need to be manually added to the application after updating.
To replicate the previous behavior, the `core-js` package should be manually installed and the `import 'core-js/proposals/reflect-metadata';` statement should be added to the application's `polyfills.ts` file.
2022-03-23 12:58:55 -07:00
Alan Agius
861ec0f7d0 refactor(@angular-devkit/build-angular): lazy import inquirer
`inquirer` has a number of depedencies which slow down module resolution when importing (~138ms) by lazy loading this module we remove this overhead when prompts are not needed.
2022-03-23 12:58:35 -07:00