{"id":26343,"library":"rspack-dev-middleware","title":"rspack-dev-middleware","description":"A Koa 2 middleware for Rspack development and hot reloading. Current stable version 0.4.0, released under Apache-2.0 license with weekly releases. Supports ESM-only with TypeScript types. Key differentiators: designed specifically for Koa 2, integrates with memfs for in-memory file systems, and provides built-in hot reloading without Webpack dependencies. Requires Node.js >=18 and peer deps @rspack/core >=1.0.7 and koa >=2.0.0. Tree-shakable with no side effects.","status":"active","version":"0.4.0","language":"javascript","source_language":"en","source_url":"https://github.com/nuintun/rspack-dev-middleware","tags":["javascript","dev","koa","rspack","server","middleware"],"install":[{"cmd":"npm install rspack-dev-middleware","lang":"bash","label":"npm"},{"cmd":"yarn add rspack-dev-middleware","lang":"bash","label":"yarn"},{"cmd":"pnpm add rspack-dev-middleware","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency for Rspack compiler instance","package":"@rspack/core","optional":false},{"reason":"Peer dependency for Koa 2 middleware framework","package":"koa","optional":false}],"imports":[{"note":"ESM-only package; named export `server` is the default middleware function.","wrong":"const server = require('rspack-dev-middleware').server","symbol":"server","correct":"import { server } from 'rspack-dev-middleware'"},{"note":"Package has a default export that is identical to the named `server` export.","wrong":"const dev = require('rspack-dev-middleware')","symbol":"default","correct":"import dev from 'rspack-dev-middleware'"},{"note":"Middleware type is available for TypeScript users as a type export.","wrong":"import { Middleware } from 'rspack-dev-middleware'","symbol":"type imports","correct":"import type { Middleware } from 'rspack-dev-middleware'"}],"quickstart":{"code":"import Koa from 'koa';\nimport rspack from '@rspack/core';\nimport { Volume, createFsFromVolume } from 'memfs';\nimport { server as dev } from 'rspack-dev-middleware';\n\nconst compiler = rspack({\n  mode: 'development',\n  entry: './src/index.tsx',\n  output: { path: '/dist' },\n});\n\nconst app = new Koa();\nconst fs = createFsFromVolume(new Volume());\n\napp.use(await dev(compiler, { fs, headers: { 'Cache-Control': 'no-cache' } }));\n\napp.listen(3000);","lang":"typescript","description":"Sets up a Koa server with Rspack dev middleware, using memfs for in-memory file output and hot reloading."},"warnings":[{"fix":"Use import syntax or dynamic import().","message":"Package is ESM-only and cannot be required via CommonJS require().","severity":"breaking","affected_versions":">=0.0.0"},{"fix":"Pass a custom `fs` object (e.g., memfs) to middleware options.","message":"Option `writeToDisk` is removed; use `fs` to customize output instead.","severity":"deprecated","affected_versions":">=0.3.0"},{"fix":"Wrap multiple compilers in a multi-compiler if needed, but note that rspack-dev-middleware only accepts a single compiler.","message":"Passing an array of compilers is not supported; use a single compiler instance.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Use `app.use(await dev(compiler, options))`.","message":"Middleware must be awaited; `app.use(dev(...))` without await may cause errors.","severity":"gotcha","affected_versions":">=0.0.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Change to dynamic import or set type: 'module' in package.json.","cause":"Using CommonJS require() on an ESM-only package.","error":"ERR_REQUIRE_ESM: require() of ES Module not supported"},{"fix":"Pass a single compiler object, e.g., `rspack({...})`.","cause":"Passing an array of compilers instead of a single compiler instance.","error":"TypeError: compiler is not an object"},{"fix":"Install koa: npm install koa.","cause":"Missing peer dependency koa.","error":"Error: Cannot find module 'koa'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}