当通过 webpack 包含 socket.io 时,获取“未捕获的引用错误:io 未定义”



我正在使用 webpack4 来捆绑我的供应商文件。一切正常,我在我的网页上包含了捆绑.js文件。
但问题是我无法从我的 js 文件访问 socket.io。我在控制台中收到错误,如下所示:

main.js:276 未捕获的引用错误:未定义 IO 主.js:276


这是我的 socket.io 代码

var socket = io().connect();
socket.on('logout', function (data) {
    if (data.includes(userId))
        window.location.href = '/auth/signout';
});

这是我的 webpack.config.js 文件

const path = require('path');
const glob = require('glob');
const webpack = require('webpack');
module.exports = {
    target: "web",
    entry: {
        page1: glob.sync('./public/js/vendor/*.js')
    },
    output: {
        path: path.resolve(__dirname, "./public/build"),
        filename: "bundle.js",
    },
    plugins: [
        new webpack.ProvidePlugin({
            $: "jquery",
            jQuery: 'jquery',
            "window.jQuery": 'jquery',
        })
    ],
    module: {
        rules: [
            {test: /modernizr/, loader: 'imports-loader?this=>window!exports-loader?window.Modernizr'},
            {test: path.resolve(__dirname, './public/js/vendor/wow.min.js'), loader: 'imports-loader?this=>window!exports-loader?window.WOW'}
            ]
    },
    resolve: {
        modules: [
            path.resolve(__dirname, "./public/js/vendor")
        ]
    },
    externals: {
        jquery: 'jQuery',
        jspdf: 'jspdf',
        moment: 'moment',
        $: 'jQuery'
    },
    mode: 'development',
    devtool: 'inline-source-map',
};

我不知道在这里做什么。我搜索了很多,但没有找到任何有用的东西!
谢谢

你缺少io的初始化吗?

const io = require('socket.io')(app);

相关内容

最新更新