vue ui报错server.installSubscriptionHandlers is not a function
问题原因
这个报错的核心诱因是全局安装的@vue/cli@5.0.7依赖的@vue/cli-ui模块,和自动拉取的高版本Apollo Server依赖存在API不兼容问题:
- Apollo Server 从3.0版本开始移除了内置的
server.installSubscriptionHandlers方法,将订阅能力调整为独立配置入口 @vue/cli-ui对应代码是基于Apollo Server 2.x版本的API编写的,调用已被移除的方法时就会抛出类型错误,直接中断vue ui启动流程
启动初始输出的持久化查询无界缓存警告是高版本Apollo Server自带的风险提示,不是导致启动失败的核心原因。
修复方案(适配yarn 1.22.19环境,无需切换包管理工具)
按顺序执行以下命令即可修复:
- 先卸载全局已存在的问题版本Vue CLI相关包:
yarn global remove @vue/cli @vue/cli-ui - 清理yarn全局缓存,避免旧的不兼容依赖被复用:
yarn cache clean - 重新全局安装兼容版本的Vue CLI,同时通过resolutions强制锁定Apollo Server依赖为兼容的2.x版本:
yarn global add @vue/cli@5.0.8 --resolutions apollo-server-express@^2.25.2 - 安装完成后执行
vue --version确认版本号输出正常,再进入项目目录执行vue ui即可正常启动可视化管理面板
注:启动时如果仍出现Apollo缓存相关警告,属于兼容版本的非阻断提示,不影响GUI功能正常使用,无需额外处理。
内容的提问来源于stack exchange,提问作者irancss
相关产品推荐
相关产品推荐

