Angular CLI: 14.0.0 Release

Release date:
June 2, 2022
Previous version:
14.0.0-rc.3 (released May 31, 2022)
Magnitude:
1,036 Diff Delta
Contributors:
1 total committer
Data confidence:
Commits:

Top Contributors in 14.0.0

dgp1130

Directory Browser for 14.0.0

We haven't yet finished calculating and confirming the files and directories changed in this release. Please check back soon.

Release Notes Published

<a name="14.0.0"></a>

14.0.0 (2022-06-02)

Breaking Changes

@angular-devkit/schematics-cli

  • camel case arguments are no longer allowed. ### @angular-devkit/architect-cli
  • camel case arguments are no longer allowed. ### @angular/cli
  • Several changes to the ng analytics command syntax.

    • ng analytics project <setting> has been replaced with ng analytics <setting>
    • ng analytics <setting> has been replaced with ng analytics <setting> --global
  • Support for Node.js v12 has been removed as it will become EOL on 2022-04-30. Please use Node.js v14.15 or later.

  • Support for TypeScript 4.4 and 4.5 has been removed. Please update to TypeScript 4.6.

  • --all option from ng update has been removed without replacement. To update packages which don’t provide ng update capabilities in your workspace package.json use npm update, yarn upgrade-interactive or yarn upgrade instead.

  • Deprecated option --prod has been removed from all builders. --configuration production/-c production should be used instead if the default configuration of the builder is not configured to production.

  • Deprecated ng x18n and ng i18n-extract commands have been removed in favor of ng extract-i18n.

  • Several changes in the Angular CLI commands and arguments handling.

    • ng help has been removed in favour of the β€”-help option.
    • ng β€”-version has been removed in favour of ng version and ng v.
    • Deprecated camel cased arguments are no longer supported. Ex. using β€”-sourceMap instead of β€”-source-map will result in an error.
    • ng update, β€”-migrate-only option no longer accepts a string of migration name, instead use β€”-migrate-only -β€”name <migration-name>.
    • β€”-help json help has been removed. ### @angular-devkit/build-angular
  • browser and karma builders script and styles options input files extensions are now validated.

Valid extensions for scripts are: - .js - .cjs - .mjs - .jsx - .cjsx - .mjsx

Valid extensions for styles are: - .css - .less - .sass - .scss - .styl - We now issue a build time error since importing a CSS file as an ECMA module is non standard Webpack specific feature, which is not supported by the Angular CLI.

This feature was never truly supported by the Angular CLI, but has as such for visibility. - 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. - NG_BUILD_CACHE environment variable has been removed. cli.cache in the workspace configuration should be used instead. - The deprecated showCircularDependencies browser and server builder option has been removed. The recommended method to detect circular dependencies in project code is to use either a lint rule or other external tools.

@angular-devkit/core

  • parseJson and ParseJsonOptions APIs have been removed in favor of 3rd party JSON parsers such as jsonc-parser.
  • The below APIs have been removed without replacement. Users should leverage other Node.js or other APIs.
    • fs namespace
    • clean
    • mapObject ### @angular-devkit/schematics
  • Schematics NodePackageInstallTask will not execute package scripts by default The NodePackageInstallTask will now use the package manager's --ignore-scripts option by default. The --ignore-scripts option will prevent package scripts from executing automatically during an install. If a schematic installs packages that need their install/postinstall scripts to be executed, the NodePackageInstallTask now contains an allowScripts boolean option which can be enabled to provide the previous behavior for that individual task. As with previous behavior, the allowScripts option will prevent the individual task's usage of the --ignore-scripts option but will not override the package manager's existing configuration.
  • Deprecated analytics property has been removed from TypedSchematicContext interface ### @ngtools/webpack
  • ivy namespace has been removed from the public API.

    • ivy.AngularWebpackPlugin -> AngularWebpackPlugin
    • ivy.AngularPluginOptions -> AngularPluginOptions ## Deprecations ### @angular/cli
  • The defaultCollection workspace option has been deprecated in favor of schematicCollections.

Before json "defaultCollection": "@angular/material"

After json "schematicCollections": ["@angular/material"] - The defaultProject workspace option has been deprecated. The project to use will be determined from the current working directory.

@angular-devkit/core

  • - ContentHasMutatedException, InvalidUpdateRecordException, UnimplementedException and MergeConflictException symbol from @angular-devkit/core have been deprecated in favor of the symbol from @angular-devkit/schematics.
    • UnsupportedPlatformException - A custom error exception should be created instead. ### @angular-devkit/schematics-cli | Commit | Description | | -- | -- | | refactor - 5330d52ae | replace parser with yargs-parser | ### @angular-devkit/architect-cli | Commit | Description | | -- | -- | | refactor - c7556b62b | replace parser with yargs-parser | ### @schematics/angular | Commit | Description | | -- | -- | | feat - 7b78b7840 | add --standalone to ng generate | | feat - e49220fba | add migratiom to remove defaultProject in workspace config | | feat - 3fa38b08b | introduce addDependency rule to utilities | | feat - b07ccfbb1 | introduce a utility subpath export for Angular rules and utilities | | feat - 7e7de6858 | update Angular dependencies to use ^ as version prefix | | feat - 69ecddaa7 | update new and existing projects compilation target to ES2020 | | fix - 7e8e42063 | add migration to remove package.json in libraries secondary entrypoints | | fix - b928d973e | alphabetically order imports during component generation | | fix - 09a71bab6 | Consolidated setup with a single beforeEach() | | fix - 1921b07ee | don't add path mapping to old entrypoint definition file | | fix - c927c038b | remove @types/node from new projects | | fix - 27cb29438 | remove extra space in standalone imports | ### @angular/cli | Commit | Description | | -- | -- | | feat - afafa5788 | add --global option to ng analytics command | | feat - bb550436a | add ng analytics info command | | feat - e5bf35ea3 | add ng cache command | | feat - 7ab22ed40 | add disable/enable aliases for off/on ng analytics command | | feat - 4212fb8de | add prompt to set up CLI autocompletion | | feat - 0316dea67 | add prompts on missing builder targets | | feat - 607a723f7 | add support for auto completion | | feat - 366cabc66 | add support for multiple schematics collections | | feat - 036327e9c | deprecated defaultProject option | | feat - fb0622893 | don't prompt to set up autocompletion for ng update and ng completion commands | | feat - 4ebfe0341 | drop support for Node.js 12 | | feat - 022d8c7bb | make ng completion set up CLI autocompletion by modifying .bashrc files | | feat - 2e15df941 | remember after prompting users to set up autocompletion and don't prompt again | | feat - 7fa3e6587 | support TypeScript 4.6.2 | | feat - 9e69331fa | use PNPM as package manager when pnpm-lock.yaml exists | | fix - 6f6b453fb | ng doc doesn't open browser in Windows | | fix - 8e66c9188 | ng g show descrption from collection.json if not present in schema.json | | fix - 9edeb8614 | add long description to ng update | | fix - 160cb0718 | correctly handle --search option in ng doc | | fix - d46cf6744 | display option descriptions during auto completion | | fix - 09f8659ce | display package manager during ng update | | fix - a49cdfbfe | don't prompt for analytics when running ng analytics | | fix - 4b22593c4 | ensure all available package migrations are executed | | fix - 054ae02c2 | favor project in cwd when running architect commands | | fix - ff4eba3d4 | handle duplicate arguments | | fix - 5a8bdeb43 | hide private schematics from ng g help output | | fix - 644f86d55 | improve error message for Windows autocompletion use cases | | fix - 3012036e8 | populate path with working directory in nested schematics | | fix - 8a396de6a | print entire config when no positional args are provided to ng config | | fix - bdf2b9bfa | print schematic errors correctly | | fix - efc3c3225 | remove analytics prompt postinstall script | | fix - bf15b202b | remove cache path from global valid paths | | fix - 142da460b | remove incorrect warning during ng update | | fix - 96a0d92da | remove JSON serialized description from help output | | fix - 78460e995 | remove type casting and add optional chaining for current in optionTransforms | | fix - e5bdadac4 | skip prompt or warn when setting up autocompletion without a global CLI install | | fix - ca401255f | sort commands in help output | | fix - b97772dfc | support silent package installs with Yarn 2+ | | fix - 87cd5cd43 | workaround npm 7+ peer dependency resolve errors during updates | | refactor - d94a67353 | remove deprecated --all option from ng update | | refactor - 2fc7c73d7 | remove deprecated --prod flag | | refactor - b69ca3a7d | remove deprecated command aliases for extract-i18n. | | refactor - 2e0493130 | replace command line arguments parser | ### @angular-devkit/build-angular | Commit | Description | | -- | -- | | feat - 00186fb93 | add initial experimental esbuild-based application browser builder | | feat - d23a168b8 | validate file extensions for scripts and styles options | | fix - 2adf252dc | add es2015 exports package condition to browser-esbuild | | fix - 72e820e7b | better handle Windows paths in esbuild experimental builder | | fix - 587082fb0 | close compiler on Karma exit | | fix - c52d10d1f | close dev-server on error | | fix - 48630ccfd | detect tailwind.config.cjs as valid tailwindcss configuration | | fix - 4d5f6c659 | downlevel libraries based on the browserslist configurations | | fix - 1a160dac0 | ensure karma sourcemap support on Windows | | fix - 07e776ea3 | fail build when importing CSS files as an ECMA modules | | fix - ac1383f9e | properly handle locally-built APF v14 libraries | | fix - 966d25b55 | remove unneeded JIT reflect metadata polyfill | | refactor - b8564a638 | remove deprecated NG_BUILD_CACHE environment variable | | refactor - 0a1cd584d | remove deprecated showCircularDependencies browser and server builder option | ### @angular-devkit/core | Commit | Description | | -- | -- | | refactor - c5b3e9299 | deprecate unused exception classes | | refactor - 67144b9e5 | remove deprecated parseJson and ParseJsonOptions APIs | | refactor - a0c02af7e | remove deprecated fs, object and array APIs | ### @angular-devkit/schematics | Commit | Description | | -- | -- | | feat - c9c781c7d | add parameter to listSchematicNames to allow returning hidden schematics. | | feat - 0e6425fd8 | disable package script execution by default in NodePackageInstallTask | | feat - 25498ad5b | re-export core string helpers from schematics package | | feat - 464cf330a | support null for options parameter from OptionTransform type | | feat - 33f9f3de8 | support reading JSON content directly from a Tree | | feat - 01297f450 | support reading text content directly from a Tree | | fix - 48f9b79bc | support ignore scripts package installs with Yarn 2+ | | fix - 3471cd6d8 | support quiet package installs with Yarn 2+ | | refactor - 44c1e6d0d | remove deprecated analytics property | ### @angular/pwa | Commit | Description | | -- | -- | | fix - 243cb4062 | remove @schematics/angular utility deep import usage | ### @ngtools/webpack | Commit | Description | | -- | -- | | fix - 0c344259d | update peer dependency to reflect TS 4.6 support | | perf - 044101554 | use Webpack's built-in xxhash64 support | | refactor - 9277eed1d | remove deprecated ivy namespace | ## Special Thanks Adrien Crivelli, Alan Agius, Charles Lyding, CΓ©dric Exbrayat, Daniil Dubrava, Doug Parker, Elton Coelho, George Kalpakas, Jason Bedard, Joey Perrott, Kristiyan Kostadinov, Paul Gschwendtner, Pawel Kozlowski, Tobias Speicher and alkavats1