当通过webpack包含socket.io时,获取`未捕获的ReferenceError:io未定义`

问题描述 投票:2回答:1

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

main.js:276 Uncaught ReferenceError:io未在main.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',
};

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

javascript socket.io webpack-4
1个回答
0
投票

你错过了io的初始化吗?

const io = require('socket.io')(app);
© www.soinside.com 2019 - 2024. All rights reserved.