使用nodemon运行socket.io时出现ERR_PACKAGE_PATH_NOT_EXPORTED错误
解决socket.io启动时出现的ERR_PACKAGE_PATH_NOT_EXPORTED错误
这个错误核心是ws包(socket.io依赖的WebSocket库)版本与当前环境不兼容,或是依赖安装时出现版本冲突,以下是具体解决步骤:
步骤1:清理并重新安装依赖
删除现有依赖目录和锁文件,让npm重新拉取与socket.io兼容的ws版本:
- Windows系统执行:
rmdir /s /q node_modules del package-lock.json npm install socket.io
- macOS/Linux系统执行:
rm -rf node_modules package-lock.json npm install socket.io
步骤2:确认Node.js版本兼容性
socket.io v4.x要求Node.js版本至少为12.20.0,建议使用LTS版本(如16.x或18.x)。如果Node版本过旧或过新,可能触发此类导出路径错误,可通过nvm(Node版本管理器)切换到兼容版本。
步骤3:补全socket.io服务器代码
你的现有代码仅导入了socket.io但未绑定HTTP服务器,完整的基础服务器代码如下:
const http = require('http'); const server = http.createServer(); const io = require('socket.io')(server); // 监听客户端连接事件 io.on('connection', (socket) => { console.log('客户端已连接'); }); // 启动服务器 server.listen(3000, () => { console.log('服务器运行在 http://localhost:3000'); });
完成以上步骤后,再用nodemon server.js启动服务,即可解决该错误。
内容的提问来源于stack exchange,提问作者GT-20
相关产品推荐
相关产品推荐

