停止支持IE11后是否可以取消Angular项目的ES5差异化构建?
Angular项目停止支持IE11后能否禁用ES5构建
首先明确结论:完全可以直接禁用ES5构建,且禁用后还能带来多个正向收益:
- 构建速度提升:无需额外执行ES5转译、打包流程,全量构建和热更新的速度都会有明显提升
- 产物体积缩小:ES6+原生语法相比转译后的ES5代码冗余度更低,能够有效减小最终打包产物的体积,提升用户加载速度,同时原生语法的运行性能也优于转译后的兼容代码
- 配置简化:不需要再维护ES5兼容相关的polyfill、差异加载配置,降低配置复杂度
具体操作方法
根据你使用的Angular版本不同,操作略有区别:
- Angular 12及以上版本:框架默认已经关闭了IE11支持,你只需要确认两个配置即可:
tsconfig.json中compilerOptions.target字段设置为ES2020或更高版本angular.json的构建配置中,已经移除了IE11相关的polyfill引入
- Angular 11及更早版本:需要手动修改两处配置:
- 打开
tsconfig.json,将compilerOptions.target从es5调整为es2015或更高版本,示例配置如下:
{ "compilerOptions": { "target": "ES2020", // 其余原有配置保持不变即可 } }- 打开
angular.json,找到对应项目的build > options配置,将supportES2015Browser等ES5兼容相关开关设为false,同时移除polyfills数组中的IE兼容相关依赖。
- 打开
注意事项
禁用ES5构建前仅需要确认你的目标用户群体使用的浏览器均支持ES6+语法即可,目前Chrome、Firefox、Safari、Edge等主流浏览器的所有近现代版本都已完全支持ES6+语法,不存在兼容问题。即使你的项目依赖了仅提供ES5产物的第三方包也不需要担心,现代浏览器原生兼容ES5语法,不会出现运行异常。
内容的提问来源于stack exchange,提问作者user1059939
相关产品推荐
相关产品推荐

