v12.0.0
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
Option | Previous default value | New default value |
---|---|---|
optimization | false | true |
aot | false | true |
buildOptimizer | false | true |
sourceMap | true | false |
extractLicenses | false | true |
namedChunks | true | false |
vendorChunk | true | false |
Server builder
Option | Previous default value | New default value |
---|---|---|
optimization | false | true |
sourceMap | true | false |
(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.
- discoverLazyRoutes
- additionalLazyModules
- additionalLazyModuleResources
- 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: https://angular.io/guide/workspace-config#optimization-configuration
@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