Budo is a command-line interface (CLI) and programmatic tool designed for rapid prototyping with Browserify, providing a development server that focuses on incremental reloading and LiveReload integration. It serves a default `index.html`, bundles JavaScript with Browserify on the fly, and suspends HTTP responses until the bundle is ready, preventing stale content. A key feature is its ability to watch HTML and CSS files, injecting CSS changes without a full page reload, and providing clear error messages directly in the DOM and browser console. As of its latest stable release, 11.8.4 (published September 2017), the project appears to be in an abandoned state, with no significant updates in recent years. It differentiates itself by tightly integrating Browserify's bundling capabilities with a development server and LiveReload, offering features like SSL support and a rich API for custom development workflows, making it suitable for quick development cycles, especially for smaller client-side projects that leverage the Browserify ecosystem.
npm install budoVerified import paths — ran on the pinned version, not inferred.
This quickstart demonstrates how to use Budo's CLI to serve, bundle, and LiveReload a simple JavaScript application with Browserify and Babel, serving static assets from a separate directory.
Adjust CLI commands to prefix Browserify arguments with `--`. Explicitly set `--host localhost` if you require local-only access. Migrate away from `--live-plugin` functionality.
Remove `--outfile` or `-o` from your `budo` commands. If your HTML refers to `bundle.js`, ensure your `budo` command maps the entry point to `bundle.js` using the `entry:outfile` syntax, e.g., `budo src/index.js:bundle.js`.
Always use `budo entry.js -- --transform browserify-shim` to correctly pass arguments to Browserify.
Always include the `--live` flag in your `budo` command to enable LiveReload features. For specific file types beyond default JS/HTML/CSS, use `--wg` (e.g., `--wg **/*.{html,css,js,jsx}`).Use `budo --dir public/` to serve content from the `public` directory. You can specify multiple directories: `budo --dir public/ --dir assets/`.
Run `npm install some-module` or `npm install --save some-module` in your project directory. Ensure `some-module` is correctly exposed if it's a non-standard path or global.
Ensure your `budo` command explicitly maps your entry file to `bundle.js`, e.g., `budo index.js:bundle.js`. If you're using `--dir`, make sure your HTML `script` tag's `src` attribute correctly matches the served bundle path.
Stop the conflicting process or specify an alternative port for `budo` using the `--port` or `-p` flag, e.g., `budo index.js --port 8000`.
Add a Browserify transform like `babelify` to your `budo` command: `budo index.js -- --transform [ babelify --presets=@babel/preset-env ]`. Ensure `babelify` and its Babel presets are installed (`npm install --save-dev babelify @babel/core @babel/preset-env`).