diff --git a/packages/angular_devkit/build_angular/src/utils/build-browser-features.ts b/packages/angular_devkit/build_angular/src/utils/build-browser-features.ts index 8a06094d6988..f2c31e6571fd 100644 --- a/packages/angular_devkit/build_angular/src/utils/build-browser-features.ts +++ b/packages/angular_devkit/build_angular/src/utils/build-browser-features.ts @@ -13,6 +13,20 @@ export class BuildBrowserFeatures { readonly supportedBrowsers: string[]; constructor(private projectRoot: string) { + // By default, browserslist defaults are too inclusive + // https://github.com/browserslist/browserslist/blob/83764ea81ffaa39111c204b02c371afa44a4ff07/index.js#L516-L522 + + // We change the default query to browsers that Angular support. + // https://angular.io/guide/browser-support + browserslist.defaults = [ + 'last 1 Chrome version', + 'last 1 Firefox version', + 'last 2 Edge major versions', + 'last 2 Safari major versions', + 'last 2 iOS major versions', + 'Firefox ESR', + ]; + this.supportedBrowsers = browserslist(undefined, { path: this.projectRoot }); } diff --git a/packages/schematics/angular/library/files/.browserslistrc.template b/packages/schematics/angular/library/files/.browserslistrc.template new file mode 100644 index 000000000000..4f9ac26980c1 --- /dev/null +++ b/packages/schematics/angular/library/files/.browserslistrc.template @@ -0,0 +1,16 @@ +# This file is used by the build system to adjust CSS and JS output to support the specified browsers below. +# For additional information regarding the format and rule options, please see: +# https://github.com/browserslist/browserslist#queries + +# For the full list of supported browsers by the Angular framework, please see: +# https://angular.io/guide/browser-support + +# You can see what browsers were selected by your queries by running: +# npx browserslist + +last 1 Chrome version +last 1 Firefox version +last 2 Edge major versions +last 2 Safari major versions +last 2 iOS major versions +Firefox ESR