NestJS初始化WebSocket网关后无法启动服务器问题求助
解决NestJS WebSocket网关启动报错:TypeError: this.graphInspector.insertEntrypointDefinition is not a function
问题根源
这个报错百分百是NestJS核心包和WebSocket相关包版本不兼容导致的。新版本的@nestjs/websockets用到了@nestjs/core里还没实现的graphInspector相关方法,只要两个包版本对不上,就会触发这个错误。
解决步骤
统一NestJS所有包的版本
打开项目根目录的package.json,把所有@nestjs/*开头的依赖版本改成完全一致。比如@nestjs/core是9.4.0,那@nestjs/websockets、@nestjs/common这些也得是9.4.0。示例配置:{ "dependencies": { "@nestjs/common": "^9.4.0", "@nestjs/core": "^9.4.0", "@nestjs/platform-express": "^9.4.0", "@nestjs/websockets": "^9.4.0" // 其他依赖保持不变 } }重装依赖
删掉node_modules和package-lock.json(用yarn的话删yarn.lock),然后重新安装:rm -rf node_modules package-lock.json npm install额外检查(可选)
如果版本统一后还是报错,确认下@WebSocketGateway的配置没问题——你代码里的CORS配置是OK的。要是用Socket.IO,得确保装了@nestjs/platform-socket.io和socket.io;原生WebSocket的话,@nestjs/websockets就够了。
验证
重新跑npm run start:dev,版本匹配正确的话项目就能正常启动,WebSocket网关也能正常工作。
内容的提问来源于stack exchange,提问作者whodis
相关产品推荐
相关产品推荐

