polyfill.ts文件可以删除吗?

3

我在我的应用程序中有这个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文件?


1
什么是错误? - Nalin Ranjan
@NalinRanjan 我在控制台收到这个错误 --> 未捕获的 TypeError: 执行 'appendChild' on 'Node' 失败:参数1不是类型为 'Node'。 - user8080
2个回答

5
自 Angular 15 开始,不再需要 polyfill 文件。您可以直接在 angular.json 中传递 zone.js。
"polyfills": [
  "zone.js"
]

2
在构建项目时,使用polyfill.ts创建polyfill.js构建产物,其中包含了在旧版浏览器中支持缺失功能所需的所有polyfills。

是否可以删除这个polyfill.ts文件?

尽量避免删除该文件,因为polyfill.ts包含zone.js polyfill。如果在旧版浏览器上运行您的应用程序,则可能会出现错误。但是,您可以删除项目不需要的polyfills。
以下是这些polyfills的摘要: import 'zone.js/dist/zone';:由Angular内部要求,用于在旧版浏览器上创建异步任务的包装器,以便进行变更检测和Angular渲染器正常工作。 import 'core.js'; import 'core-js/es6/reflect'; import 'core-js/modules/es6.map';:对于IE支持很有用,因为它缺少许多现代ES6功能。如果您不支持IE,则可以将其删除。 import 'regenerator-runtime/runtime';:添加生成器/ yield函数的polyfill。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接