I have a Create React App that I migrated to Vite.
I use socket.io-client
.
Both versions of the app are exactly the same (simply copy/paste) except the bundlers.
This is my websocket connection
import { io } from 'socket.io-client' export function App() { useEffect(() => { io('http://my-server') }) }
In the webpack version I can see in the network tab that socket.io is attempting to connect.
But in the vite version it doesn’t, it doesn’t even throw an error.
How can I fix this? is this have anything to do with Vite only supporting ESM packages and not CommonJS?
Advertisement
Answer
Eventually I solved this by specifying a transports
property in the connection, like so:
io('http://my-server', { transports: ['websocket'], // Required when using Vite })