7995 Commits

Author SHA1 Message Date
Alan Agius
afc9d10688 fix(@schematics/angular): make version 12 workspace config migration idempotent
With this change we ensure that `update-angular-config-v12` migration is idempotent

Closes #20979
2021-05-31 12:49:24 +01:00
Charles Lyding
92c9be44fa fix(@angular-devkit/build-angular): correctly ignore inline styles during i18n extraction
Stylesheets are not processed during i18n extraction to improve performance and the rules to support them are intentionally not present.
2021-05-31 12:48:55 +01:00
Alan Agius
f209cb5545 test(@angular-devkit/core): update host tests to not use deprecated Jasmine behaviour
```
DEPRECATION: An asynchronous before/it/after function was defined with the async keyword but also took a done callback. This is not supported and will stop working in the future. Either remove the done callback (recommended) or remove the async keyword.
```
2021-05-31 12:48:18 +01:00
Alan Agius
06af7d7e7b fix(@angular-devkit/core): handle async schema validations 2021-05-31 12:48:18 +01:00
Alan Agius
9f85bc5625 fix(@angular-devkit/core): handle complex smart defaults in schemas 2021-05-31 12:48:18 +01:00
Alan Agius
600d266ca4 fix(@angular-devkit/core): show allowed enum values when validation on enum fails 2021-05-31 12:48:18 +01:00
Alan Agius
621938dd5e test(@angular-devkit/core): fix memory host spec
This previously caused an `UnhandledPromiseRejection` which caused tests not to run. But Jasmine, still reported success.

```
yarn bazel test //packages/angular_devkit/core:core_test --test_summary=detailed --test_output=all

INFO: Analyzed target //packages/angular_devkit/core:core_test (1 packages loaded, 10 targets configured).
INFO: Found 1 test target...
Target //packages/angular_devkit/core:core_test up-to-date:
  dist/bin/packages/angular_devkit/core/core_test.sh
  dist/bin/packages/angular_devkit/core/core_test_loader.js
  dist/bin/packages/angular_devkit/core/core_test_require_patch.js
INFO: Elapsed time: 0.327s, Critical Path: 0.03s
INFO: 1 process: 1 internal.
INFO: Build completed successfully, 1 total action
PASSED: //packages/angular_devkit/core:core_test (see /private/var/tmp/_bazel_alanagius/5168427e57f204ca069c602aa7ed1931/execroot/angular_cli/bazel-out/darwin-fastbuild/testlogs/packages/angular_devkit/core/core_test/test.log)
INFO: From Testing //packages/angular_devkit/core:core_test
==================== Test output for //packages/angular_devkit/core:core_test:
(node:12829) UnhandledPromiseRejectionWarning: Error: Cannot find module '/private/var/tmp/_bazel_alanagius/5168427e57f204ca069c602aa7ed1931/execroot/angular_cli/node_modules/@angular-devkit/core/src/index.js'. Please verify that the package.json has a valid "main" entry
    at tryPackage (internal/modules/cjs/loader.js:303:19)
    at Function.Module._findPath (internal/modules/cjs/loader.js:516:18)
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:867:27)
    at Function.Module._load (internal/modules/cjs/loader.js:725:27)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Object.<anonymous> (packages/angular_devkit/core/src/virtual-fs/host/memory_spec.ts:10:1)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Loader.requireShim [as require_] (node_modules/jasmine/lib/loader.js:35:3)
    at node_modules/jasmine/lib/loader.js:28:12
    at new Promise (<anonymous>)
    at Loader.load (node_modules/jasmine/lib/loader.js:27:12)
    at Jasmine.loadSpecs (node_modules/jasmine/lib/jasmine.js:91:23)
    at Jasmine.execute (node_modules/jasmine/lib/jasmine.js:267:3)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:12829) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:12829) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
================================================================================
Test cases: finished with 1 passing and 0 failing out of 1 test cases

Executed 0 out of 1 test: 1 test passes.
```
2021-05-31 12:48:18 +01:00
Alan Agius
f9acdc75ca fix(@angular-devkit/build-angular): provided earlier build feedback in console
With this change we provide earlier feedback in the console during a build. The setup phase can take some times if the project has a large set of dependencies.

We also move several warnings in the dev-server to an earlier phase so that we don't clutter the progress indicator.

Closes #20957
2021-05-31 12:48:00 +01:00
Alan Agius
6467717e02 fix(@angular/cli): update supported range of node versions to be less restrictive
This is to match the supported versions by the framework https://github.com/angular/angular/pull/42205

Closes #20796
2021-05-31 12:47:39 +01:00
Doug Parker
a364e1f246 docs: fold post-release version bump with the release commit
The process has changed and post-release bumps are no longer necessary.

Also updated the doc to include a section on changing shifts with the caveat that you must be logged in to the `@angular.io` account to have edit access to the calendar.
2021-05-31 12:47:17 +01:00
Alan Agius
77f81dc7f7 fix(@angular-devkit/build-angular): do not resolve web-workers in server builds
Web-workers are not supported on the server and therefore we should not try include them in server builds.

Closes #20877
2021-05-31 12:46:50 +01:00
Doug Parker
2f295963d7 release: v12.1.0-next.3 v12.1.0-next.3 2021-05-26 12:05:16 -07:00
Doug Parker
f0dd794f75 Revert "release: v12.1.0-next.3"
This reverts commit 8b967fabd95f66fcedb2903cc7a4ffff8a0fd43e.

Needed to update the version in `package.json` but didn't.
2021-05-26 11:50:48 -07:00
Doug Parker
8b967fabd9 release: v12.1.0-next.3 2021-05-26 11:39:21 -07:00
Alan Agius
fb21c4a968 feat(@angular-devkit/build-angular): deprecate protractor builder 2021-05-26 13:27:10 -04:00
Alan Agius
7ff41e4e5a fix(@angular-devkit/build-angular): show --disable-host-check warning only when not using disableHostCheck
Closes #20951
2021-05-26 13:26:46 -04:00
Renovate Bot
6e2c292365 build: update dependency jest-worker to v27 2021-05-26 11:26:07 -04:00
Charles Lyding
37db1d2c63 test: use correct snapshot versions in add-pwa E2E test with yarn
When executing the add-pwa E2E test with Angular snapshots, the package versions need to be updated after the `ng add @angular/pwa` call to ensure that the correct version of `@angular/service-worker` is used.
Yarn requires a different package installation strategy due to Yarn not always installing a new version of a github sha when directly adding an individual package.
2021-05-26 11:25:48 -04:00
Charles Lyding
459aa2bc6a refactor(@angular-devkit/build-angular): use new inlineStyleFileExtension option for inline component styles
The new `ngtools/webpack` option leverages the inline resource matching syntax combined with a custom loader instead of data URIs. This provides better resource path in loaders that do not yet fully support scheme-based resource requests.
2021-05-26 10:51:33 -04:00
Charles Lyding
7a6a4ecb59 refactor(@ngtools/webpack): use Webpack inline resource matching for inline resources
Webpack provides a method to construct a special request string that will remap a loader chain to appear to be from a specific resource path. This requires a custom loader, however, it allows rule matching to leverage the existing file extension based approach and allows providing a path to other loaders which simplifies relative request handling.
2021-05-26 10:51:33 -04:00
Alan Agius
861a69567c fix(@angular-devkit/build-angular): resolve absolute outputPath properly
Closes #20935
2021-05-26 10:19:16 -04:00
Alan Agius
02bea8cc18 fix(@angular-devkit/build-angular): hide stacktraces from dart-sass errors 2021-05-26 10:17:26 -04:00
Alan Agius
6e07cb19c0 fix(@angular-devkit/build-angular): allow i18n extraction on application that uses web-workers
Closes #20930
2021-05-25 10:54:31 -04:00
Hassan Sani
15e5bfa55b fix(@angular/cli): ng update on windows to allow path 2021-05-25 10:29:11 -04:00
Charles Lyding
9433bb6179 fix(@angular-devkit/build-angular): ensure latest inline stylesheet data is used during rebuilds
Fixes: #20904
2021-05-25 09:54:38 -04:00
Charles Lyding
c44100bf4b test: use correct snapshot versions in add-pwa E2E test
When executing the add-pwa E2E test with Angular snapshots, the package versions need to be updated after the `ng add @angular/pwa` call to ensure that the correct version of `@angular/service-worker` is used.
2021-05-25 09:53:59 -04:00
JoostK
640a749515 perf(@angular-devkit/build-angular): load postcss-preset-env configuration once
Loading the postcss-preset-env plugin includes building a mapping of unsupported
browsers by feature, which is somewhat expensive. In large compilations, this mapping
would be recomputed for each postcss-loader instance, as the plugin was recreated
for each loader invocation. By extracting the plugin instance outside of the dynamic
plugin computation, this overhead is avoided.
2021-05-24 16:26:13 -04:00
Alan Agius
57f78e8c60 test: fix local mapping path of @ angular-devkit/schematics-cli
Fix an incorrect mapping path in the circular dependency checker configuration.
2021-05-24 09:29:15 -04:00
George Kalpakas
d1953bf1aa fix(@angular-devkit/build-angular): correctly generate ServiceWorker config on Windows
Since #20518, the generation of the ServiceWorker configuration has been
broken on Windows. The reason is the use of `path.posix.*` methods on
non-POSIX paths, resulting in broken paths. I.e. we ended up with
something like the following:

```js
path.posix.relative('C:\\foo', 'C:\\foo\\bar/baz');
// Expected result: `bar/baz`
// Actual result:   `../C:\\foo\\bar/baz`
```

This caused the config generator to fail to find any files and thus fail
to populate the config with cacheable assets.

This commit fixes this by using platform-specific `path.*` methods for
path manipulation and manually normalizing the path separators before
returning the results.

Fixes #20894
2021-05-24 09:28:55 -04:00
Renovate Bot
1878411777 build: update dependency ts-node to v10 2021-05-24 09:12:04 -04:00
Renovate Bot
92a7d2fe38 build: update dependency copy-webpack-plugin to v9 2021-05-22 08:36:20 -04:00
Renovate Bot
a888138437 build: update dependency source-map-loader to v3 2021-05-22 08:35:56 -04:00
Charles Lyding
57640bebfd feat(@angular/cli): show Node.js version support status in version command
Unsupported versions of Node.js will now show an unsupported warning when the `ng version` command is executed.
Currently Node.js major versions 12 and 14 are considered supported and tested.

Closes #20879
2021-05-21 20:04:54 -04:00
Alan Agius
5855374eb5 fix(@ngtools/webpack): re-emit component stylesheet assets
With this change we re-emit assets referenced in component stylesheets which where uneffected by the change that re-triggered a re-compilation.

Since we cache the the result of processed component CSS, during a re-compilation `postcss-cli-resources` plugin will not run which causes assets to be to emit. With this change we now cache the asset and re-emit them on every change.

Closes #20882
2021-05-21 20:04:32 -04:00
Alan Agius
1ab2ef9a3f perf(@angular-devkit/build-angular): disable CSS optimization parallelism for components styles
Since we rely on child compilations to compile components CSS, using the `parallel` option will cause a significant overhead because each compilation will need to spawn a worker, in this mode the worker limit is not be honored because `css-minimizer-webpack-plugin` spawn and calulators workers during the optimization phase of a compilation and not globally per instance hence causes OOM because a large number of workers to be spawned simultaneously.

Closes #20883
2021-05-21 13:13:05 -04:00
Bjarki
c146e9c086 feat(@angular-devkit/build-angular): enable webpack Trusted Types support
As reported in #20113, webpack triggers a Trusted Types violation when
lazy-loading is used. To mitigate that, enable webpack's Trusted Types
module (introduced in webpack/webpack#9856) using 'angular#bundler' as
the policy name.
2021-05-21 13:10:52 -04:00
Bjarki
16a80311ef test: add e2e tests for Trusted Types
Ensure that a simple Angular application is compatible with Trusted
Types, even when lazy-loading is used. This test currently fails due to
a Trusted Types violation originating in Webpack.
2021-05-21 13:10:52 -04:00
Bjarki
5e5d68ef6c test: ensure e2e tests serve headers 2021-05-21 13:10:52 -04:00
Alan Agius
bea90a6130 fix(@angular-devkit/build-angular): don't add .hot-update.js script tags
Closes #20855
2021-05-21 13:07:42 -04:00
Charles Lyding
4dc7cf9529 fix(@angular-devkit/build-angular): ensure Sass worker implementation supports Node.js 12.14
The Worker constructor option for a transfer list is unfortunately not supported until Node.js 12.17. For Node.js versions prior to 12.17, a manual message post is now used to transfer the necessary initialization data to the Sass workers.
2021-05-21 13:07:12 -04:00
Joey Perrott
6dcb04093c ci: update e2e-cli to use node 12.20
Update the e2e-cli job on CI to use 12.20 rather than 12.18.
2021-05-19 14:23:41 -07:00
Joey Perrott
1ac3931d3e release: v12.1.0-next.2 v12.1.0-next.2 2021-05-19 12:29:28 -07:00
Charles Lyding
4f2df00511 perf(@ngtools/webpack): reduce non-watch mode TypeScript diagnostic analysis overhead
When not in a watch mode, the analyis performed by TypeScript to improve incremental type checking can be avoided by creating an abstract builder program that only wraps the underlying TypeScript program.
Performance enhancements in the upcoming TypeScript 4.3 may remove the need for this.  However, TypeScript 4.3 is not yet released and is not yet supported. In addition, TypeScript 4.2 will continue to be supported throughout the v12 major even when TypeScript 4.3 is also supported.
2021-05-19 20:51:23 +02:00
Alan Agius
1080a52c96 fix(@schematics/angular): add migration to remove skipTests from @schematics/angular:module
Migration for #20842

Closes #20848
2021-05-19 17:28:14 +02:00
Alan Agius
43926a21ba fix(@angular-devkit/build-angular): compile schema in synchronously
AJV only support a single schema with the same ID, compiling schemas async can cause a race condition were multiple schemas with the same name as compiled at the same time.

Closes #20847
2021-05-19 16:34:55 +02:00
Joey Perrott
d66fe41be9 build: set up releasing using ng-dev 2021-05-19 12:04:27 +02:00
Luca Vazzano
dcbfe5cd8f docs(@angular-devkit/schematics): properly escape code in Templating quick reference 2021-05-19 12:04:14 +02:00
Renovate Bot
f6390fb551 build: update angular to d174912 2021-05-19 12:02:33 +02:00
Pankaj Patil
36b5040cc4 fix(@schematics/angular): don't add skipTest option to module schematic options
Closes ##20811
2021-05-19 10:50:14 +02:00
Alan Agius
f5f41ea929 perf(@angular-devkit/build-angular): clean no-longer used assets during builds
This reduce memory consumption during re-builds.

```
runtime.ba93f81591909b93394f.hot-update.js.map will be removed
styles.ba93f81591909b93394f.hot-update.js.map will be removed
runtime.ba93f81591909b93394f.hot-update.json will be removed
runtime.ba93f81591909b93394f.hot-update.js will be removed
styles.ba93f81591909b93394f.hot-update.js will be removed
```

See https://github.com/webpack/webpack/issues/12947#issuecomment-812108140 and https://github.com/webpack/webpack/issues/13127
2021-05-18 18:55:18 +02:00