Socket.io-client: Carga de IE 11 rota debido a un valor "principal" incorrecto en package.json

Creado en 20 feb. 2020  ·  6Comentarios  ·  Fuente: socketio/socket.io-client

Tú quieres:

  • [x] informar un error
  • [] solicitar una función

Comportamiento actual

¿Qué está pasando realmente?

Siguiendo el ejemplo oficial de uso:

import io from 'socket.io-client';

en una aplicación JS da como resultado un sitio roto en IE 11.

Por roto no me refiero a que la funcionalidad de socket-io no funcione, sino que se rompe al cargar el paquete completo de la aplicación web, incluidos los informes de errores, etc. Debido a que nadie prueba en IE 11 probablemente nadie realmente notó este error.

Pasos para reproducir (si el comportamiento actual es un error)

Simplemente agregue import io from 'socket.io-client' en una aplicación web y pruebe en IE 11.

Comportamiento esperado

¿Lo que es esperado?

IE 11 debería cargar el paquete

Configuración

  • SO: Win 10
  • navegador: IE 11
  • versión socket.io:

Otra información (p. Ej., Seguimiento de pila, problemas relacionados, sugerencias de cómo solucionarlo)

La razón por la que esto sucede es porque el valor "principal" en package.json especifica el código fuente desagregado, no la carpeta dist empaquetada, por lo que el código fuente se empaqueta. Probablemente algunos paquetes también procesan los módulos importados, pero mi versión de Webpack no lo hace, solo procesa el código fuente del usuario.

La solución sería muy simple, especificar uno de los archivos dist como el valor "principal".

Como solución, estoy usando esta línea, que funciona:

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

Comentario más útil

La solución también funciona para mí, ¡gracias!

Todos 6 comentarios

Tiene este mismo problema. La solución me funciona: +1:

¡Bien!

La solución también funciona para mí, ¡gracias!

A mí también me funciona, buen trabajo. gracias @hyperknot !!

Para que otros sepan, aquí está en consola:
image

La dependencia debug se revirtió a 3.1.0 , que no necesita transpilarse. Publicado en 2.3.1 .

Tenga en cuenta que también puede usar el complemento webpack-remove-debug para eliminar cualquier llamada a la dependencia de depuración (hasta que encontremos una forma adecuada de proporcionar una compilación con y sin depuración).

¿Fue útil esta página
0 / 5 - 0 calificaciones