为何最新版adaptivecards在SPFX集成场景下无法正常编译?
问题根因
该编译报错由TypeScript版本不兼容导致:最新版adaptivecards的类型定义使用了TypeScript 4.0及以上版本才支持的语法特性,而低于1.16版本的SPFX默认绑定TypeScript 3.9,旧版本TS无法识别新语法,就会抛出TS1005“期望逗号”错误。
解决方案
你可以根据项目情况选择以下任意一种方案处理:
- 方案1:升级SPFX版本(推荐)
若项目允许升级依赖,将SPFX升级到1.16.1或更高版本,该版本默认使用TypeScript 4.5+,可原生兼容最新版Adaptive Cards相关依赖。升级完成后执行gulp clean清理缓存再重新编译即可。 - 方案2:降级Adaptive Cards到兼容版本
若暂时无法升级SPFX,可使用适配旧版TS的Adaptive Cards版本组合,操作步骤如下:- 卸载当前已安装的三个包:
npm uninstall adaptivecards adaptivecards-templating adaptivecards-fluentui - 安装指定兼容版本:
npm install adaptivecards@2.11.0 adaptivecards-templating@2.3.1 adaptivecards-fluentui@0.11.0 --save - 执行
gulp clean后重新编译即可。
- 卸载当前已安装的三个包:
- 方案3:跳过第三方库类型检查(临时规避)
打开项目根目录的tsconfig.json文件,在compilerOptions配置项中添加"skipLibCheck": true,该配置会跳过node_modules目录下所有类型定义文件的检查,不会影响业务代码的类型校验,也可快速解决该报错。
内容的提问来源于stack exchange,提问作者user2584780
相关产品推荐
相关产品推荐

