socket.io icon indicating copy to clipboard operation
socket.io copied to clipboard

Error [RollupError]: "default" is not exported by "node_modules/ws/lib/websocket.js", imported by "node_modules/ws/wrapper.mjs".

Open prljav opened this issue 1 year ago • 2 comments

Describe the bug A clear and concise description of what the bug is. Cannot import io from socket.io-client To Reproduce Use @kellnerd/userscript-bundler to try to bundle import { io } from "socket.io-client" Please fill the following code example:

Socket.IO server version: x.y.z none

Server

import { Server } from "socket.io";

const io = new Server(3000, {});

io.on("connection", (socket) => {
  console.log(`connect ${socket.id}`);

  socket.on("disconnect", () => {
    console.log(`disconnect ${socket.id}`);
  });
});

Socket.IO client version: x.y.z

Client

import { io } from "socket.io-client";

const socket = io("ws://localhost:3000/", {});

socket.on("connect", () => {
  console.log(`connect ${socket.id}`);
});

socket.on("disconnect", () => {
  console.log("disconnect");
});

Expected behavior have the IO object

Platform:

  • Device: [e.g. Samsung S8] desktop/127.0.6533.88 (Official Build) built on Debian 12.6, running on Debian 12.6 (64-bit)
  • OS: [e.g. Android 9.2] debian 12.6

Additional context Add any other context about the problem here. no

prljav avatar Sep 21 '24 10:09 prljav

NOTE: could be issue with the bundler, if it is someone please help :P

prljav avatar Sep 21 '24 10:09 prljav

Hi! rollup must be configured to use the browser-specific version of the package:


export default {
  // ...
  plugins: [
    resolve({
      browser: true,
    }),
  ],
};

Is that your case?

Reference: https://socket.io/docs/v4/client-with-bundlers/#rollupjs

darrachequesne avatar Oct 23 '24 05:10 darrachequesne