angular/angular-cli
### [`v8.0.0`](https://togithub.com/angular/angular-cli/releases/tag/v8.0.0)
[Compare Source](https://togithub.com/angular/angular-cli/compare/v7.3.10...v8.0.0)
Welcome to version 8.0 of Angular and the CLI.
This release includes some significant new features:
- Differential Loading is a build system feature in the CLI. It builds two versions of your application. One version is for modern browsers, and has a 10-30% smaller JS bundle size and fewer required polyfills. The second version works in older browsers. During `ng update`, we make some minor changes to your application to make it possible for all browsers to automatically downloaded the most suitable bundles. This change requires no server-side or serving infrastructure changes. The change is enabled by default via the `target` field set to `es2015` in application’s tsconfig.json. If this change breaks your application, you can change the value back to `es5` which disables differential loading. Thanks to Manfred Steyer https://github.com/manfredsteyer for upstreaming his excellent work on ngx-build-plus. See the documentation at https://angular.io/guide/deployment#differential-loading
- Support for EcmaScript dynamic `import()` for lazy loading of routes. This aligns Angular with the JavaScript specification and makes your application more compatible with tooling. `ng update` will automatically change the `loadChildren` syntax to import(), and we no longer recommend using the string-based style like `path/to/module#ModuleName`. Thanks to Craig Spence https://github.com/phenomnomnominal for adding support for this.
- WebWorker bundling is now automatic in the CLI. This lets you easily write code that moves expensive computation to a separate thread, and have that bundled in a separate script that works in the browser. Thanks to Jason Miller https://github.com/developit for writing the Webpack plugin and assisting us with integrating this feature into the CLI. See the documentation at https://angular.io/guide/web-worker.
- CLI telemetry is an opt-in feature that lets you report CLI usage data to the Angular team, and also to your own Google Analytics account. This lets us make better decisions about which CLI features to prioritize, and measure the impact of our improvements. See the documentation at https://angular.io/analytics
- Builders is a new API in the CLI that allows tooling developers to replace the behavior of CLI commands such as build and test. Before 8.0.0 we will add documentation, for now you can see a preview at https://pr29964-c99aea0.ngbuilds.io/guide/architect and read the blog post. As part of 8.0.0 we are working with cloud providers to take advantage of Architect to provide a new `deploy` command. Along with Architect, we've added a Workspace API for tools that need to read or write the `angular.json` file; see https://github.com/angular/angular-cli/blob/master/packages/angular_devkit/core/README.md#workspaces
- Reduced transitive tarball download size of `@angular/cli` by 60%
To update, please visit https://update.angular.io
> Note: if you configure Node.js with extra memory for your `ng build` command, you may need to do the same for `ng update` since this update loads your program in memory.
### Breaking Changes
@angular-devkit/build-angular: use `sass` instead of `node-sass` (ce15899)
we no longer use `node-sass` by default, instead we use `sass` (dart-sass).
While in most cases this should not have an impact the generated code, dart sass has some differences from Ruby Sass. See https://github.com/sass/dart-sass#behavioral-differences-from-ruby-sass for more details
If you wish to use `node-sass` instead of `sass` you need to install node-sass as a dev dependency.
npm users
npm install node-sass --save-dev
yarn users
yarn add node-sass --dev
**Note:** for larger Sass projects to avoid this performance hit you might want to install `fibers`. See: https://www.npmjs.com/package/fibers
Ref: TOOL-748
@angular-devkit/core: Remove dep on chokidar (eb5643e)
Users who rely on angular-devkit/core to do the file watching must add chokidar to their devDependencies.
@angular-devkit/build-angular: disable by default stylesheet root relative URL rebasing (94b087c)
Root relative URLs are a standardized method to reference a resource path from the root of a host. The previous behavior of the Angular CLI prevented this from occuring and resulted in an inability to reference stylesheet assets in this manner. The initial reason for this behavior is no longer present in the internal implementation of the Angular CLI. Therefore, this now unnecessary and non-standard behavior is being phased out. If an application currently relies on this behavior, a compatibility option `rebaseRootRelativeCssUrls` has been provided for the 8.x release cycle to facilitate transition away from this non-standard and limiting behavior. The recommended method to transition is to use relative paths within the source stylesheet. This allows the build system to process and generate a full URL for the asset.
Schematics are now async
For Schematics authors: note that schematics have always been potentially async, but now they all are.
***
### Commits
@angular/cli (8.0.0)
Commit
Description
Notes
verify Angular version is supported
automatically update angular builders when CLI is updated
This PR contains the following updates:
1.6.8
->8.0.0
By merging this PR, the below issues will be automatically resolved and closed:
Release Notes
angular/angular-cli
### [`v8.0.0`](https://togithub.com/angular/angular-cli/releases/tag/v8.0.0) [Compare Source](https://togithub.com/angular/angular-cli/compare/v7.3.10...v8.0.0) Welcome to version 8.0 of Angular and the CLI. This release includes some significant new features: - Differential Loading is a build system feature in the CLI. It builds two versions of your application. One version is for modern browsers, and has a 10-30% smaller JS bundle size and fewer required polyfills. The second version works in older browsers. During `ng update`, we make some minor changes to your application to make it possible for all browsers to automatically downloaded the most suitable bundles. This change requires no server-side or serving infrastructure changes. The change is enabled by default via the `target` field set to `es2015` in application’s tsconfig.json. If this change breaks your application, you can change the value back to `es5` which disables differential loading. Thanks to Manfred Steyer https://github.com/manfredsteyer for upstreaming his excellent work on ngx-build-plus. See the documentation at https://angular.io/guide/deployment#differential-loading - Support for EcmaScript dynamic `import()` for lazy loading of routes. This aligns Angular with the JavaScript specification and makes your application more compatible with tooling. `ng update` will automatically change the `loadChildren` syntax to import(), and we no longer recommend using the string-based style like `path/to/module#ModuleName`. Thanks to Craig Spence https://github.com/phenomnomnominal for adding support for this. - WebWorker bundling is now automatic in the CLI. This lets you easily write code that moves expensive computation to a separate thread, and have that bundled in a separate script that works in the browser. Thanks to Jason Miller https://github.com/developit for writing the Webpack plugin and assisting us with integrating this feature into the CLI. See the documentation at https://angular.io/guide/web-worker. - CLI telemetry is an opt-in feature that lets you report CLI usage data to the Angular team, and also to your own Google Analytics account. This lets us make better decisions about which CLI features to prioritize, and measure the impact of our improvements. See the documentation at https://angular.io/analytics - Builders is a new API in the CLI that allows tooling developers to replace the behavior of CLI commands such as build and test. Before 8.0.0 we will add documentation, for now you can see a preview at https://pr29964-c99aea0.ngbuilds.io/guide/architect and read the blog post. As part of 8.0.0 we are working with cloud providers to take advantage of Architect to provide a new `deploy` command. Along with Architect, we've added a Workspace API for tools that need to read or write the `angular.json` file; see https://github.com/angular/angular-cli/blob/master/packages/angular_devkit/core/README.md#workspaces - Reduced transitive tarball download size of `@angular/cli` by 60% To update, please visit https://update.angular.io > Note: if you configure Node.js with extra memory for your `ng build` command, you may need to do the same for `ng update` since this update loads your program in memory. ### Breaking Changes@angular-devkit/build-angular: use `sass` instead of `node-sass` (ce15899)
we no longer use `node-sass` by default, instead we use `sass` (dart-sass). While in most cases this should not have an impact the generated code, dart sass has some differences from Ruby Sass. See https://github.com/sass/dart-sass#behavioral-differences-from-ruby-sass for more details If you wish to use `node-sass` instead of `sass` you need to install node-sass as a dev dependency. npm users npm install node-sass --save-dev yarn users yarn add node-sass --dev **Note:** for larger Sass projects to avoid this performance hit you might want to install `fibers`. See: https://www.npmjs.com/package/fibers Ref: TOOL-748@angular-devkit/core: Remove dep on chokidar (eb5643e)
Users who rely on angular-devkit/core to do the file watching must add chokidar to their devDependencies.@angular-devkit/build-angular: disable by default stylesheet root relative URL rebasing (94b087c)
Root relative URLs are a standardized method to reference a resource path from the root of a host. The previous behavior of the Angular CLI prevented this from occuring and resulted in an inability to reference stylesheet assets in this manner. The initial reason for this behavior is no longer present in the internal implementation of the Angular CLI. Therefore, this now unnecessary and non-standard behavior is being phased out. If an application currently relies on this behavior, a compatibility option `rebaseRootRelativeCssUrls` has been provided for the 8.x release cycle to facilitate transition away from this non-standard and limiting behavior. The recommended method to transition is to use relative paths within the source stylesheet. This allows the build system to process and generate a full URL for the asset.Schematics are now async
For Schematics authors: note that schematics have always been potentially async, but now they all are. *** ### Commits@angular/cli (8.0.0)
@angular-devkit/architect (0.800.0)
@angular-devkit/build-angular (0.800.0)
[Closes #11439]
[Closes #12096]
[Closes #12128]