到目前为止,我将 core-js 导入到 polyfills.ts 中。然而,这会使生成的包变得臃肿,所以我试图将其删除。
在 tsconfig.json 中,我有目标:“ES2022”,模块:“es2020”等。
根据 Angular 文档 (https://angular.io/guide/build),从 Angular 15 开始,.browserslistrc 用于确定生成的包的 ES 版本。但是,无论我在上述文件中指定什么,我都无法让我的应用程序在 Safari 11 上运行(死机白屏):
(在 main.js 中)TypeError:Xt.flat 不是函数。 “Xt.flat”未定义
我正在使用这个 .browserslistrc 文件:
supports es6-module
not dead
not ios_saf <= 10.3
not safari <= 10.1
not safari tp
not edge <= 17
angular.json 中使用的构建器是@angular-builders/custom-webpack
Array.flat
从 Safari 12 开始 可用。浏览器列表不会为您填充它。
Browserlist 只是确保语法正确(转换 null 合并等)
解决办法是自己带上polyfill,就像core.js正在做的那样。