npm @angular-devkit/schematics 12.0.0

latest releases: 18.0.0-rc.2, 17.3.7, 18.0.0-rc.1...
3 years ago

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

Don't miss a new schematics release

NewReleases is sending notifications on new releases.