Angular4项目升级AnyChart8.2.0遇DataGridButton导出成员错误求助
解决方案:AnyChart 8.2.0与Angular 4的编译错误问题
嗨,这个问题我之前在维护旧Angular项目时也碰到过,你遇到的核心错误是:
ERROR in ./node_modules/anychart/dist/index.d.ts: Namespace 'anychart.core.ui' has no exported member 'DataGridButton'
本质是AnyChart 8.2.0做了破坏性API变更——DataGridButton这个成员被移除或重构了。给你两个实用的解决方案,按需选择:
方案一:锁定AnyChart 8.1.0版本(快速修复)
如果你的项目不需要8.2.0的新特性,这是最省心的解决方式:
- 打开项目根目录的
package.json文件 - 找到
anychart的依赖项,把版本号从原来的^8.1.0或~8.1.0改成精确的8.1.0(^和~会让npm自动安装兼容的高版本,去掉后会强制安装指定版本) - 执行命令
npm install重新安装依赖 - 再次运行
npm start,webpack编译应该就能正常通过了
方案二:适配AnyChart 8.2.0版本(长期升级)
如果想用上8.2.0的新功能,需要针对API变更调整代码:
- 查看AnyChart 8.2.0的官方更新说明,找到8.1.x到8.2.x的破坏性变更记录,确认
DataGridButton的替代方案(比如是否被移到了新的命名空间,或者换成了其他组件) - 全局搜索项目中所有引用
anychart.core.ui.DataGridButton的代码,替换成新版本的对应API - 修改完成后,执行
npm start测试编译是否正常
小提示:旧Angular版本(比如Angular 4)对新依赖的兼容性可能有限,如果升级AnyChart后出现其他未知问题,优先考虑方案一的版本锁定方式。
内容的提问来源于stack exchange,提问作者aspergillusOryzae
相关产品推荐
相关产品推荐

