首页 > 解决方案 > 启动快速应用程序时找不到模块'socket.io-client/dist/socket.io.js'

问题描述

对于看似微不足道的事情,我有一个非常令人沮丧的问题。

我在 node.js 服务器上运行一个 express 应用程序,用 ES6 编写并使用 webpack 编译。它编译时没有任何错误,除了以下警告:

../node_modules/socket.io/lib/index.js 113:11-32
0:0  warning  Critical dependency: the request of a dependency is an expression

(虽然我不确定这是否与我当前的问题有关)
但是,当我启动服务器时,我收到以下错误:

Error: Cannot find module 'socket.io-client/dist/socket.io.js'
at Function.webpackEmptyContext [as resolve] (webpack:///../node_modules/socket.io/lib_sync?:2:10)
at resolvePath (webpack:///../node_modules/socket.io/lib/index.js?:113:100)
at Server.serveClient (webpack:///../node_modules/socket.io/lib/index.js?:116:25)
at new Server (webpack:///../node_modules/socket.io/lib/index.js?:53:8)
at Function.Server [as listen] (webpack:///../node_modules/socket.io/lib/index.js?:44:41)
at new Socket (webpack:///./server/socket.js?:10:98)

插座类:

import io from 'socket.io';

export default class Socket {
    constructor(server) {
        this.io = io.listen(server);

        this.io.on('connection', (socket) => {
            // Handle connection
        });
    }
}

服务器参数是从express.listen()函数返回的对象。

我使用命令安装了 socket.io npm install socket.io --save,随后"socket.io": "^2.1.1"在我的 package.json 中添加了依赖项,并运行了命令npm install来更新我的依赖项,但仍然遇到错误。

如您所知,我对此感到相当困惑......尤其是在几乎完全按照这里的文档之后,因此非常感谢任何帮助!

标签: node.jsecmascript-6socket.io

解决方案


这对我来说起到了作用:

var io = require('socket.io')(server, { serveClient: false })

推荐阅读