我的应用程序中有这个 polyfill.ts 文件,其中包含以下导入语句:
import 'zone.js/dist/zone';
import 'core.js';
import 'core-js/modules/es6.map';
import 'regenerator-runtime/runtime';
import 'core-js/es6/reflect';
但是在检查控制台日志后,发现polyfill.js文件中存在未捕获的类型错误(注意:错误出现在polyfill.js文件上,而不是polyfill.ts文件上)
有没有办法不加载这些polyfill 文件?即使它是自动创建的,是否也可以删除这个 polyfill.ts 文件?
从 Angular 15 开始,不再需要 polyfill 文件。
您可以直接在
zone.js
通过
angular.json
"polyfills": [
"zone.js"
]
构建项目时,
polyfill.ts
用于创建polyfill.js
构建工件,其中包含支持旧版浏览器中缺少的功能所需的所有填充。
是否也可以删除这个polyfill.ts
尝试避免删除此文件,因为polyfill.ts包含
zone.js
polyfill。您的应用程序在旧版浏览器上运行时可能会产生错误。但是,您可以删除项目不需要的内容。
以下是这些填充函数的摘要:
import 'zone.js/dist/zone';:Angular 内部需要创建一个围绕异步任务的包装器,以便进行更改检测和 Angular 渲染器在旧版浏览器上正常工作。
导入'core.js'; 导入“core-js/es6/reflect”; import 'core-js/modules/es6.map'; :对于缺少许多现代 ES6 功能的 IE 支持很有用。如果您不支持 IE,可以删除这些。
import 'regenerator-runtime/runtime';:为生成器/产量函数添加polyfill。
通过遵循 Matthieu Riegler 的解决方案,然后从我的 "src/tsconfig.*.json" 文件的
"polyfills.ts"
区域中删除 "files"
,我能够从项目中完全删除 polyfills.ts 文件。