Angular接入Azure App Configuration在IE11报SCRIPT1002语法错误求助
问题根源
IE11 完全不支持 ES6 的class语法,你报错指向的AppConfigCredential类属于 Azure App Configuration JS SDK 的内部代码,该 SDK 默认发布包包含 ES6+ 语法,你之前配置的 Angular ES5 编译规则仅对业务代码生效,默认不会编译node_modules下的第三方依赖,因此 SDK 里的 ES6 语法直接流入了打包产物,触发 IE11 报错。
解决步骤
- 先调整 SDK 版本:
@azure/app-configuration从 1.3.x 版本开始官方已停止支持 IE11 兼容,必须兼容 IE11 的前提下,先将该 SDK 版本降级到最后一个兼容 ES5 的稳定版1.2.0。 - 修改 ES5 转译配置,把 Azure 相关依赖加入编译范围:
打开tsconfig-es5.app.json,在include数组中添加以下路径:"include": [ "src/**/*.ts", "node_modules/@azure/app-configuration/**/*", "node_modules/@azure/core-auth/**/*", "node_modules/@azure/core-client/**/*", "node_modules/@azure/core-rest-pipeline/**/*" ] - 补充完整 IE11 所需 polyfill:
打开polyfills.ts,确认已添加以下基础填充:import 'core-js/es/symbol'; import 'core-js/es/object'; import 'core-js/es/function'; import 'core-js/es/number'; import 'core-js/es/string'; import 'core-js/es/date'; import 'core-js/es/array'; import 'core-js/es/regexp'; import 'core-js/es/map'; import 'core-js/es/weak-map'; import 'core-js/es/set'; import 'core-js/es/promise'; import 'regenerator-runtime/runtime'; - 你业务代码中的
async/await语法不需要手动修改,只要上述转译配置生效,构建时会自动转译为 IE11 支持的 Promise 链式调用逻辑。
验证方式
修改配置后执行ng build --configuration=es5,在打包后的vendor.js中搜索class AppConfigCredential,如果搜索不到说明已被成功转译为 ES5 构造函数写法,部署后 IE11 即可正常运行。
内容的提问来源于stack exchange,提问作者Ajay。
相关产品推荐
相关产品推荐

