Angular4集成Kendo Angular生产构建后IE11报SCRIPT1006错误如何解决
Kendo Angular IE11 SCRIPT1006 报错解决方案
问题根源确认
该报错代码来自@progress/kendo-angular-intl组件包的旧版本,孤立代码块语法不符合ES5规范,IE11无法正常解析,现代浏览器做了兼容处理所以不会报错。
可行解决方法
- 方案1:升级Kendo对应组件包
直接将@progress/kendo-angular-intl升级到兼容Angular4的2.0及以上版本,该版本官方已经修复了这个语法兼容问题,升级后重新构建即可。 - 方案2:配置构建转译规则
如果暂时无法升级依赖包,可以修改Angular构建配置,将@progress/kendo-angular-intl加入babel转译范围,构建时自动将该包的ES6+语法转换为IE11支持的ES5语法:
Angular4对应修改.angular-cli.json配置,在转译白名单中添加该包路径即可。 - 方案3:源码补丁修复
可以使用patch-package工具直接给本地安装的@progress/kendo-angular-intl包源码打补丁,将出错的代码段调整为符合ES5规范的写法:if (e.hex && n.test(o)) { return Number.parseInt(o, 16); } else { const n = i.exec(o); if (n) { const i = n[2] , r = n[3]; return 1 === i.length && "." === r[0] ? Number(t) : !e.leadingZeros && i.length > 0 ? t : Number(o) } return t }
附加注意项
构建前请确认项目polyfills.ts中已经开启了IE11所需的polyfill引入,尤其是Object.assign、String.prototype.trim等API的polyfill,避免后续出现其他兼容报错。
内容的提问来源于stack exchange,提问作者vijeth
相关产品推荐
相关产品推荐

