Serdev is a Node.js development server designed for complex project structures, particularly monorepos, where multiple components might have disparate build processes. It differentiates itself by being bundler-agnostic, allowing users to integrate various build tools like esbuild, Webpack, Rust's Cargo, or custom Node.js scripts. The server watches specified directories for changes, triggering rebuilds of components and serving the generated artifacts or proxying to embedded servers. It aims to streamline development workflows by consolidating diverse build and serving requirements into a single configuration. As of version 0.1.2, it is in a very early stage of development, implying potential instability and rapid evolution, without a specified regular release cadence. Its key strength lies in its flexibility to manage heterogeneous build ecosystems.
npm install serdevVerified import paths — ran on the pinned version, not inferred.
This example configures `serdev` to manage and serve multiple distinct components within a monorepo, including custom build steps for TypeScript, Rust/WASM, and Node.js servers, alongside static file serving and API proxying, all with automatic rebuilds on file changes.
Currently, there is no known workaround mentioned. Users on Windows should consider alternative development servers or use a Linux/macOS environment (e.g., WSL2) for `serdev` development.
Pin to exact versions in `package.json` (`"serdev": "0.1.2"`) to prevent unexpected updates. Regularly review GitHub releases or changelogs for breaking changes when upgrading.
Verify that your `PATH` environment variable includes directories containing required executables. For `npm` installed binaries, consider using `npx` or explicit paths to `node_modules/.bin` within your build commands.
Check the console output for detailed errors from the failing build/start script. Ensure the command is correct, dependencies are installed (e.g., `npm install` in component directories), and paths are resolved correctly.
Identify the process using the port (`lsof -i :<port>` on Unix/macOS or `netstat -ano | findstr :<port>` on Windows) and terminate it, or change the `port` configuration in `serdev` for the conflicting component or for `serdev`'s main listening port.
Review your `routes` configuration in `serdev.listen()` to ensure it correctly maps paths to files or components. Verify that build processes for components linked to routes successfully produce the expected output files and paths.
No dependency data recorded yet.