Получение `Uncaught ReferenceError: io не определено`, когда socket.io включен через веб-пакет - PullRequest
2 голосов
/ 05 апреля 2019

Я использую webpack4 для связывания файлов моего поставщика. Все работает хорошо, и я включил файл bundle.js на мою веб-страницу.
Но проблема в том, что я не могу получить доступ к socket.io из моего файла js. Я получаю сообщение об ошибке в консоли, как показано ниже:

main.js: 276 Uncaught ReferenceError: io не определен at 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',
};

Я не знаю, что здесь делаю. Я много искал, но не нашел ничего полезного!
Спасибо

1 Ответ

0 голосов
/ 05 апреля 2019

Вам не хватает инициализации io ?

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