Packages

@angular-devkit/core

22.2.5 · 28 Oct 2026MIT24.5M / weekRepositorynpmAtom feed

Your version

12.0.0

major12 May 2021Where it was published

12.2.18 is the newest release of 12.x.

In short

4 breaking

  • breaking

    discoverLazyRoutes

  • breaking

    additionalLazyModules

  • breaking

    additionalLazyModuleResources

  • breaking

    contextElementDependencyConstructor

Release note

Commits

@angular-devkit/architect (0.1200.0) Commit Description Notes

add implementation for defaultConfiguration

@angular-devkit/build-angular (12.0.0) Commit Description Notes

add `postcss-preset-env` with stage 3 features

drop support for karma version 5.2

drop support for ng-packagr version 11

enable inlineCritical by default

show warning during build when project requires IE 11 support

expose legacy-migrate message format

integrate JIT mode linker

[Closes #20281]

upgrade to Webpack 5 throughout the build system

support processing component inline CSS styles

support specifying stylesheet language for inline component styles

remove left-over `experimentalRollupPass` option

support writing large Webpack stat outputs

ensure output directory is present before writing stats JSON

remove deprecated View Engine support for i18n extraction

remove usage of deprecated View Engine compiler

remove deprecated i18nLocale and i18nFormat options from i18n-extract

update karma builder to use non-deprecated API

disable webpack cache when using `NG_BUILD_CACHE`

remove duplicate application bundle generation complete message

mark programmatic builder execution functions as experimental

avoid double build optimizer processing

replace Webpack 4 `hashForChunk` hook usage

use new Webpack watch API in karma webpack plugin

recover from CSS optimization errors

disable Webpack 5 automatic public path support

always inject live reload client when using live reload

change several builder options defaults

show warning when using stylus

avoid triggering file change after file build

remove left-over `forkTypeChecker` option

disable CSS declaration sorting optimizations

[Closes #20693]

disable `showCircularDependencies` by default

use Webpack's GC memory caching in watch mode

improve incremental time during Karma tests

avoid async downlevel for known ES2015 code

@angular-devkit/build-optimizer (0.1200.0) Commit Description Notes

support Webpack 5

@angular-devkit/build-webpack (0.1200.0) Commit Description Notes

provide output path in builder results

support Webpack 5

@angular-devkit/core (12.0.0) Commit Description Notes

add handling for `defaultConfiguration` target definition property

update schema validator

ensure job input values are processed in order

improve handling of set schema values

[Closes #20594]

@angular/cli (12.0.0) Commit Description Notes

add `defaultConfiguration` property to architect schema

deprecate `--prod` command line argument

confirm ng add action before installation

support TypeScript 4.2

ensure odd number Node.js version message is a warning

remove npm 7 incompatibility notification

avoid exceptions for expected errors in architect commands

ensure update migrations are fully executed

exclude deprecated packages with removal migrations from update

add message update updating from non LTS versions of the CLI

ignore `tsickle` during updates

run all migrations when updating from or between prereleases

add package manager name and version in `ng version` output

Support XDG Base Directory Specfication

don't display options multiple times in schematics help output

change package installation to async

infer schematic defaults correctly when using `--project`

[Closes #20666]

propagate update's force option to package managers

allow unsetting config when value is `undefined`

allow config object to be of JSON.

disallow additional properties in builders sections

@ngtools/webpack (12.0.0) Commit Description Notes

support Webpack 5

drop support for string based lazy loading

support multiple plugin instances per compilation

support generating data URIs for inline component styles in JIT

support processing inline component styles in AOT

remove Webpack 5 deprecation warning in resource loader

use correct Webpack asset stage in resource loader

remove Webpack plugin for deprecated ViewEngine compiler

only track actual resource file dependencies

avoid adding transitive dependencies to Webpack's dependency graph

use precalculated dependencies in unused file check

only check affected files for Angular semantic diagnostics

cache results of processed inline resources

rebuild Angular required files asynchronously

reduce source file and Webpack module iteration

@schematics/angular (12.0.0) Commit Description Notes

add migration to remove deprecated options from 'angular.json'

strict mode by default

use new zone.js entry-points

add migration to use new zone.js entry-points

add migration to remove emitDecoratorMetadata

augment `universal` schematics to import `platform-server` shims

[Closes #40559]

update new project dependencies version

[Closes #20106]

production builds by default

deprecate `legacyBrowsers` application and ng-new option

add migration to remove `lazyModules` configuration option

add migration to update lazy loading string syntax to use dynamic imports

update several TypeScript compilation target (Syntax)

remove tslint and codelyzer from new projects

[Closes #20105]

[Closes #18465]

add production by default optional migration

update new workspaces to use Karma 6.3

remove `entryComponent` from `component` schematic

configure new libraries to be published in Ivy partial mode

update `jasmine-spec-reporter` to version 7

migrate web workers to support Webpack 5

only update removed v12 options in migration

add `additionalProperties` to all schemas

remove references to the prod flag

only show legacy browsers deprecation warning when option is used

remove leftover workspace tslint config

correctly handle adding multi-line strings to `@NgModule` metadata

run update-i18n migration for server builder

update web-worker to support Webpack 5

set `inlineStyleLanguage` when application `style` option is used

set `inlineStyleLanguage` for universal if present in build options

remove jasmine-spec-reporter and ts-node from default workspace

remove Protractor from home page

remove lint command from package.json

[Closes #20618]

fix migration for namedChunks and option

add "type" option in enum schematic

only run `emitDecoratorMetadata` removal migration in safe workspaces

replace `clientProject` with `project`


Breaking Changes

@schematics/angular: remove `stylus` from `style` options (fd729ac) `styl` (Stylus) is no longer a supported value as `style` in `application`, `component`, `ng-new` schematics. Stylus is not actively maintained and only 0.3% of the Angular CLI users use it.

(cherry picked from commit 0272fc5)

@angular-devkit/build-angular: change several builder options defaults (656f8d7) A number of browser and server builder options have had their default values changed. The aim of these changes is to reduce the configuration complexity and support the new "production builds by default" initiative.

Browser builder

OptionPrevious default valueNew default value
optimizationfalsetrue
aotfalsetrue
buildOptimizerfalsetrue
sourceMaptruefalse
extractLicensesfalsetrue
namedChunkstruefalse
vendorChunktruefalse

Server builder

OptionPrevious default valueNew default value
optimizationfalsetrue
sourceMaptruefalse

(cherry picked from commit 0a74d0d)

@angular-devkit/core: update schema validator (0875313) support for JSON Schema draft-04 and draft-06 is removed. If you have schemas using the `id` keyword replace them with `$id`. For an interim period we will auto rename any top level `id` keyword to `$id`.

NB: This change only effects schematics and builders authors.

@angular-devkit/build-angular: upgrade to Webpack 5 throughout the build system (d883ce5) Webpack 5 lazy loaded file name changes Webpack 5 generates similar but differently named files for lazy loaded JavaScript files in development configurations (when the `namedChunks` option is enabled). For the majority of users this change should have no effect on the application and/or build process. Production builds should also not be affected as the `namedChunks` option is disabled by default in production configurations. However, if a project's post-build process makes assumptions as to the file names then adjustments may need to be made to account for the new naming paradigm. Such post-build processes could include custom file transformations after the build, integration into service-side frameworks, or deployment procedures. Example development file name change: `lazy-lazy-module.js` --> `src_app_lazy_lazy_module_ts.js`

Webpack 5 now includes web worker support. However, the structure of the URL within the Worker constructor must be in a specific format that differs from the current requirement.
Web worker usage should be updated as shown below (where ./app.worker should be replaced with the actual worker name):
Before: new Worker('./app.worker', ...)
After: new Worker(new URL('./app.worker', import.meta.url), ...)

@ngtools/webpack: remove Webpack plugin for deprecated ViewEngine compiler (160102a) Removal of View Engine support from application builds With the removal of the deprecated View Engine compiler in Angular version 12 for applications, the View Engine Webpack plugin has been removed. The Ivy-based Webpack plugin is the default used within the Angular CLI. If using a custom standalone Webpack configuration, the removed `AngularCompilerPlugin` should be replaced with the Ivy-based `AngularWebpackPlugin`.

@angular-devkit/build-angular: remove deprecated i18n options from server and browser builder (5cf9a08) Removal of deprecated browser and server command options. - `i18nFile`, use `locales` object in the project metadata instead. - `i18nFormat`, No longer needed as the format will be determined automatically. - `i18nLocale`, use `localize` option instead.

@angular-devkit/build-angular: remove deprecated i18nLocale and i18nFormat options from i18n-extract (eca5a01) Removal of deprecated `extract-i18n` command options The deprecated `i18nLocale` option has been removed and the `i18n.sourceLocale` within a project's configuration should be used instead. The deprecated `i18nFormat` option has been removed and the `format` option should be used instead.

@angular-devkit/build-angular: remove usage of deprecated View Engine compiler (677913f) Removal of View Engine support from application builds With the removal of the deprecated View Engine compiler in Angular version 12 for applications, Ivy-based compilation will always be used when building an application. The default behavior for applications is to use the Ivy compiler when building and no changes are required for these applications. For applications that have opted-out of Ivy, a warning will be shown and an Ivy-based build will be attempted. If the build fails, the application may need to be updated to become Ivy compatible.

@schematics/angular: remove `entryComponent` from `component` schematic (8582ddc) `entryComponent` option has been removed from the `component` schematic as this was intended to be used with the the now no longer supported ViewEngine rendering engine.

@angular-devkit/build-angular: remove view engine app-shell generation (1c2aeeb) App-shell builder now only supports generation using Ivy

@angular-devkit/build-angular: remove deprecated View Engine support for i18n extraction (012700a) Removal of View Engine support from i18n extraction With the removal of the deprecated View Engine compiler in Angular version 12 for applications, the `ng extract-i18n` command will now always use the Ivy compiler. The `--ivy` option has also been removed as Ivy-based extraction is always enabled. The default behavior for applications is to use the Ivy compiler for building/extraction and no changes are required for these applications. For applications that have opted-out of Ivy, a warning will be shown and Ivy-based extraction will be attempted. If the extraction fails, the application may need to be updated to become Ivy compatible.

@angular/cli: confirm ng add action before installation (985dc1a) The `ng add` command will now ask the user to confirm the package and version prior to installing and executing an uninstalled package. This new behavior allows a user to abort the action if the version selected is not appropriate or if a typo occurred on the command line and an incorrect package would be installed. A `--skip-confirmation` option has been added to skip the prompt and directly install and execute the package. This option is useful in CI and non-TTY scenarios such as automated scripts.

@angular-devkit/build-angular: remove deprecated `lazyModules` option (8d66912) Server and Browser builder `lazyModules` option has been removed without replacement.

@ngtools/webpack: drop support for string based lazy loading (0dc7327) With this change we drop support for string based lazy loading `./lazy.module#LazyModule` use dynamic imports instead.

The following options which were used to support the above syntax were removed without replacement.

  • breaking

    discoverLazyRoutes

  • breaking

    additionalLazyModules

  • breaking

    additionalLazyModuleResources

  • breaking

    contextElementDependencyConstructor

@angular-devkit/build-angular: enable inlineCritical by default (aa3ea88) Critical CSS inlining is now enabled by default. If you wish to turn this off set `inlineCritical` to `false`.

See: angular.io/guide/workspace-config

@angular-devkit/build-angular: drop support for zone.js 0.10 (f309516) Minimum supported `zone.js` version is `0.11.4`

@angular-devkit/build-angular: drop support for ng-packagr version 11 (44e75be) Minimum supported `ng-packagr` version is `12.0.0-next`

@angular-devkit/build-angular: drop support for karma version 5.2 (fa5cf53) Minimum supported `karma` version is `6.0.0`

set minimum Node.js version to 12.13 (d1f6169) Node.js version 10 will become EOL on 2021-04-30. Angular CLI 12 will require Node.js 12.13+ or 14.15+. Node.js 12.13 and 14.15 are the first LTS releases for their respective majors.

@angular-devkit/build-angular: remove file-loader dependency (6732294) The unsupported/undocumented, Webpack specific functionality to `import`/`require()` a non-module file has been removed.

Before

import img from './images/asset.png';

After

<img src="images/asset.png">

Special Thanks

Alan Agius, Charles Lyding, Keen Yee Liau, Joey Perrott, Doug Parker, Cédric Exbrayat, Douglas Parker, George Kalpakas, Sam Bulatov, Joshua Chapman, Santosh Yadav, David Shevitz, Kristiyan Kostadinov