AWS Chime SDK JS报错“ChimeSDK未定义”,求解决及文件获取方式
解决Amazon Chime SDK全局变量未定义的问题
问题原因
你按照官方工具打包后出现ChimeSDK is not defined,大概率是因为当前版本的SDK打包后,全局暴露的变量名不是ChimeSDK,而是AmazonChimeSDK;或者打包配置里的全局变量名设置不符。
快速修复方案
方案1:修改代码中的全局变量名
打开你生成的amazon-chime-sdk.min.js,搜索全局暴露的变量(比如查看文件末尾,通常会有window.XXX = ...的代码)。如果全局变量是AmazonChimeSDK,把HTML中的脚本代码改成:
const logger = new AmazonChimeSDK.ConsoleLogger( "ChimeMeetingLogs", AmazonChimeSDK.LogLevel.INFO ); const deviceController = new AmazonChimeSDK.DefaultDeviceController(logger);
方案2:调整打包配置后重新打包
进入amazon-chime-sdk/utils/singlejs目录,打开webpack.config.js,找到output配置项,修改library字段为ChimeSDK:
output: { filename: 'amazon-chime-sdk.min.js', library: 'ChimeSDK', // 确保这里设置为ChimeSDK libraryTarget: 'umd', umdNamedDefine: true, },
修改完成后重新执行npm run bundle,生成的文件就会把SDK挂载到ChimeSDK全局变量下,你的原有代码即可正常运行。
其他获取可直接引入的SDK文件的方式
除了自行打包,你还可以通过以下方式获取预构建的SDK文件:
- 通过npm安装
amazon-chime-sdk-js后,从node_modules/amazon-chime-sdk-js/dist/目录下复制amazon-chime-sdk.min.js到项目静态资源目录中直接引入。 - 使用CDN服务获取预构建的UMD格式包,引入后通过全局变量访问SDK(注意提前确认全局变量名称)。
内容的提问来源于stack exchange,提问作者Jasper2000
相关产品推荐
相关产品推荐

