mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
The custom elements spec is not compatible with ES5 style classes. This means ES2015 code compiled to ES5 will not work with a native implementation of Custom Elements. To support browsers that natively support Custom Elements but not ES2015 modules, we load `@webcomponents/custom-elements/src/native-shim.js`, which minimally augments the native implementation to be compatible with ES5 code. (See [here][1] for more details.) Previously, the shim was included in `polyfills.ts`, which meant it was loaded in all browsers (even those supporting ES2015 modules and thus not needing the shim). This commit moves the shim from `polyfills.ts` to a `nomodule` script tag in `index.html`. This will ensure that it is only loaded in browsers that do not support ES2015 modules and thus do not needed the shim. NOTE: This commit also reduces size of the polyfills bundle by ~400B (52609B --> 52215B). [1]: https://www.npmjs.com/package/@webcomponents/custom-elements#es5-vs-es2015 PR Close #41162
197 lines
5.6 KiB
JSON
197 lines
5.6 KiB
JSON
{
|
|
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
|
|
"version": 1,
|
|
"cli": {
|
|
"packageManager": "yarn",
|
|
"warnings": {
|
|
"typescriptMismatch": false
|
|
},
|
|
"analytics": false
|
|
},
|
|
"newProjectRoot": "projects",
|
|
"projects": {
|
|
"site": {
|
|
"root": "",
|
|
"sourceRoot": "src",
|
|
"projectType": "application",
|
|
"prefix": "aio",
|
|
"schematics": {
|
|
"@schematics/angular:component": {
|
|
"inlineStyle": true,
|
|
"style": "scss"
|
|
}
|
|
},
|
|
"architect": {
|
|
"build": {
|
|
"builder": "@angular-devkit/build-angular:browser",
|
|
"options": {
|
|
"outputPath": "dist",
|
|
"index": "src/index.html",
|
|
"main": "src/main.ts",
|
|
"polyfills": "src/polyfills.ts",
|
|
"tsConfig": "tsconfig.app.json",
|
|
"webWorkerTsConfig": "tsconfig.worker.json",
|
|
"aot": true,
|
|
"optimization": true,
|
|
"buildOptimizer": true,
|
|
"outputHashing": "all",
|
|
"sourceMap": true,
|
|
"statsJson": true,
|
|
"extractLicenses": true,
|
|
"namedChunks": true,
|
|
"vendorChunk": false,
|
|
"assets": [
|
|
"src/assets",
|
|
"src/generated",
|
|
"src/pwa-manifest.json",
|
|
"src/google385281288605d160.html",
|
|
{
|
|
"glob": "native-shim.js",
|
|
"input": "node_modules/@webcomponents/custom-elements/src",
|
|
"output": "/assets/js"
|
|
}
|
|
],
|
|
"styles": [
|
|
"src/styles/main.scss"
|
|
],
|
|
"scripts": [],
|
|
"budgets": [
|
|
{
|
|
"type": "anyComponentStyle",
|
|
"maximumWarning": "6kb"
|
|
}
|
|
]
|
|
},
|
|
"configurations": {
|
|
"fast": {
|
|
"optimization": false
|
|
},
|
|
"next": {
|
|
"fileReplacements": [
|
|
{
|
|
"replace": "src/environments/environment.ts",
|
|
"with": "src/environments/environment.next.ts"
|
|
}
|
|
],
|
|
"serviceWorker": true
|
|
},
|
|
"rc": {
|
|
"fileReplacements": [
|
|
{
|
|
"replace": "src/environments/environment.ts",
|
|
"with": "src/environments/environment.rc.ts"
|
|
}
|
|
],
|
|
"serviceWorker": true
|
|
},
|
|
"stable": {
|
|
"fileReplacements": [
|
|
{
|
|
"replace": "src/environments/environment.ts",
|
|
"with": "src/environments/environment.stable.ts"
|
|
}
|
|
],
|
|
"serviceWorker": true
|
|
},
|
|
"archive": {
|
|
"fileReplacements": [
|
|
{
|
|
"replace": "src/environments/environment.ts",
|
|
"with": "src/environments/environment.archive.ts"
|
|
}
|
|
],
|
|
"serviceWorker": true
|
|
},
|
|
"ci": {
|
|
"progress": false
|
|
}
|
|
}
|
|
},
|
|
"serve": {
|
|
"builder": "@angular-devkit/build-angular:dev-server",
|
|
"options": {
|
|
"browserTarget": "site:build"
|
|
},
|
|
"configurations": {
|
|
"fast": {
|
|
"browserTarget": "site:build:fast"
|
|
},
|
|
"next": {
|
|
"browserTarget": "site:build:next"
|
|
},
|
|
"rc": {
|
|
"browserTarget": "site:build:rc"
|
|
},
|
|
"stable": {
|
|
"browserTarget": "site:build:stable"
|
|
},
|
|
"archive": {
|
|
"browserTarget": "site:build:archive"
|
|
},
|
|
"ci": {
|
|
"browserTarget": "site:build:ci"
|
|
}
|
|
}
|
|
},
|
|
"extract-i18n": {
|
|
"builder": "@angular-devkit/build-angular:extract-i18n",
|
|
"options": {
|
|
"browserTarget": "site:build"
|
|
}
|
|
},
|
|
"test": {
|
|
"builder": "@angular-devkit/build-angular:karma",
|
|
"options": {
|
|
"main": "src/test.ts",
|
|
"polyfills": "src/polyfills.ts",
|
|
"tsConfig": "tsconfig.spec.json",
|
|
"webWorkerTsConfig": "tsconfig.worker.json",
|
|
"karmaConfig": "karma.conf.js",
|
|
"assets": [
|
|
"src/assets",
|
|
"src/generated",
|
|
"src/pwa-manifest.json",
|
|
"src/google385281288605d160.html",
|
|
{
|
|
"glob": "native-shim.js",
|
|
"input": "node_modules/@webcomponents/custom-elements/src",
|
|
"output": "/assets/js"
|
|
}
|
|
],
|
|
"styles": [
|
|
"src/styles/main.scss"
|
|
],
|
|
"scripts": []
|
|
}
|
|
},
|
|
"lint": {
|
|
"builder": "@angular-devkit/build-angular:tslint",
|
|
"options": {
|
|
"tsConfig": [
|
|
"tsconfig.app.json",
|
|
"tsconfig.spec.json",
|
|
"tsconfig.worker.json",
|
|
"tests/e2e/tsconfig.json"
|
|
],
|
|
"exclude": [
|
|
"**/node_modules/**"
|
|
]
|
|
}
|
|
},
|
|
"e2e": {
|
|
"builder": "@angular-devkit/build-angular:protractor",
|
|
"options": {
|
|
"protractorConfig": "tests/e2e/protractor.conf.js",
|
|
"devServerTarget": "site:serve"
|
|
},
|
|
"configurations": {
|
|
"ci": {
|
|
"devServerTarget": "site:serve:ci"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"defaultProject": "site"
|
|
}
|