Socket.io-client: Ошибка загрузки IE 11 из-за неправильного значения "main" в package.json

Созданный на 20 февр. 2020  ·  6Комментарии  ·  Источник: socketio/socket.io-client

Вы хотите:

  • [x] сообщить об ошибке
  • [] запросить функцию

Текущее поведение

Что на самом деле происходит?

Следуя официальному примеру использования:

import io from 'socket.io-client';

в приложении JS приводит к неработающему сайту в IE 11.

Под словом «сломанный» я не имею в виду, что функциональность socket-io не работает, но то, что он нарушает загрузку всего пакета веб-приложения, включая отчеты об ошибках и т. Д. Поскольку никто не тестирует IE 11, вероятно, никто не заметил эту ошибку.

Действия по воспроизведению (если текущее поведение является ошибкой)

Просто добавьте import io from 'socket.io-client' в веб-приложение и протестируйте его в IE 11.

Ожидаемое поведение

Что ожидается?

IE 11 должен загрузить пакет

Настраивать

  • ОС: Win 10
  • браузер: IE 11
  • версия socket.io:

Другая информация (например, трассировки стека, связанные проблемы, предложения по исправлению)

Причина, по которой это происходит, заключается в том, что значение «main» в package.json указывает разделенный исходный код, а не связанную папку dist, поэтому исходный код объединяется. Возможно, некоторые сборщики также обрабатывают импортированные модули, но моя версия Webpack этого не делает, она обрабатывает только исходный код пользователя.

Решение было бы очень простым: указать один из файлов dist в качестве «основного» значения.

В качестве обходного пути я использую эту строку, которая работает:

import io from 'socket.io-client/dist/socket.io.slim.js'

Самый полезный комментарий

У меня тоже работает обходной путь, спасибо!

Все 6 Комментарий

Есть такая же проблема. Для меня работает обходной путь: +1:

Хороший!

У меня тоже работает обходной путь, спасибо!

У меня тоже работает, хорошая работа. спасибо @hyperknot !!

Чтобы другие знали, вот оно в консоли:
image

Зависимость debug была возвращена к 3.1.0 , которую не нужно переносить. Выпущено в версии 2.3.1 .

Обратите внимание, что вы также можете использовать плагин webpack-remove-debug , чтобы удалить любой вызов зависимости отладки (пока мы не найдем правильный способ предоставить сборку с отладкой и без нее).

Была ли эта страница полезной?
0 / 5 - 0 рейтинги