Install & Compatibility
Where this runs
No compatibility data collected yet for this library.
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
svelteKitWebSocketPlugin
✓ import { svelteKitWebSocketPlugin } from 'svelte-websocket/vite'
✗ import { svelteKitWebSocketPlugin } from 'svelte-websocket'
Plugin is only available from the '/vite' subpath; root entry is runtime-safe
exposeWebSocketServer
✓ import { exposeWebSocketServer } from 'svelte-websocket'
✗ import { exposeWebSocketServer } from 'svelte-websocket/vite'
Runtime helpers are in the root entry; importing from '/vite' would pull Vite into production
startWebSocketServer
✓ import { startWebSocketServer } from 'svelte-websocket'
✗ const startWebSocketServer = require('svelte-websocket')
ESM-only package; no CommonJS support
getExposedWebSocketServer
✓ import { getExposedWebSocketServer } from 'svelte-websocket'
Typically used in your custom Node server to retrieve the bootstrap function from globalThis
Demonstrates full setup: define a WebSocket server function, attach it via Vite plugin for dev, expose it for production via hooks.server.ts, and start it from a custom adapter-node server.
// src/lib/server/websocket/index.ts
import { Server } from 'socket.io';
import type { Server as HttpServer } from 'node:http';
export function webSocketServer(httpServer: HttpServer) {
const io = new Server(httpServer, { cors: { origin: '*' } });
io.on('connection', (socket) => {
socket.emit('welcome', 'Realtime server connected');
});
}
// vite.config.ts
import { defineConfig } from 'vite';
import { sveltekit } from '@sveltejs/kit/vite';
import { svelteKitWebSocketPlugin } from 'svelte-websocket/vite';
export default defineConfig({
plugins: [sveltekit(), svelteKitWebSocketPlugin()]
});
// src/hooks.server.ts
import { exposeWebSocketServer } from 'svelte-websocket';
import { webSocketServer } from '$lib/server/websocket';
exposeWebSocketServer(webSocketServer);
// Custom production server (adapter-node)
import express from 'express';
import { createServer } from 'node:http';
import { handler } from './build/handler.js';
const app = express();
const server = createServer(app);
const startRealtimeServer = globalThis.startRealtimeServer;
if (startRealtimeServer) {
await startRealtimeServer(server);
}
app.use(handler);
server.listen(3000);
Errors
Common errors & fixes
ERR_REQUIRE_ESM
Using require() on an ESM-only package
fixUse import('svelte-websocket') or set "type": "module" in package.json and use import. Cannot find module 'svelte-websocket/vite'
Missing 'vite' peer dependency or incorrect entry path
fixInstall vite: npm install vite@^7.0.0. Ensure you are importing from 'svelte-websocket/vite' not from a different path.
The requested module 'svelte-websocket' does not provide an export named 'svelteKitWebSocketPlugin'
Importing the plugin from the root entry instead of '/vite'
fixChange import to: import { svelteKitWebSocketPlugin } from 'svelte-websocket/vite'; Audit
Dependencies
viterequiredPeer dependency required for the Vite plugin entrypoint (svelte-websocket/vite)