Frontend build tools combining the best parts of Symfony Encore and Laravel Mix
bud.js is a web-focused build tool with add-on support for Babel, React, PostCSS, Sass, Typescript, esbuild, ESLint, Prettier, and more.
The standard bud.js compiler leverages webpack, but is open to being extended to support other build tools. In the future, we hope to provide support for alternatives.
bud.js is written in TypeScript but fully supports projects written in vanilla JavaScript.
bud.js wants to be:
- Reliable, yielding consistent and predictable behaviors regardless of specified options.
- Fast, leveraging parallel processing, smart caching and an asyncronous events based API to keep build times minimal.
- Extensible, with a fully featured plugin system to support an ecosystem of packaged modules
- Simple, to get started and straight forward to maintain
- Zero config by default. Check out this codesandbox template with react, postcss modules and no config.
- Modular by design. Use only what you need.
- Multi-compiler support.
- Heckin’ fast.
- Lux developer tooling and semi-automated dependency management.
- Support for configuration files authored with TypeScript, JSON, YML, CJS and ESM.
- Support for CDNs like skypack and unpkg. See documentation on using remote sources or this example sandbox using skypack modules
- Support for outputting Ecmascript modules (experimental). See documentation on outputting ESM.
- Customizable and extensible. Add new features. Swap our core components with your own.
- Node 16+
- yarn 1.22 or higher
- npm 8.3 or higher
- Windows users must run bud.js under the Windows Subsystem for Linux.
Check out bud.js.org and the Getting Started guide.
There are many example implementations available in the /examples directory of this repo, including projects written using both CommonJS and ESM.
Name | Usage | Latest |
---|---|---|
@roots/bud-preset-recommend | 📚 Usage | |
@roots/bud-preset-wordpress | 📚 Usage | |
@roots/sage | 📚 Usage |
Have you produced a bud.js extension and want to share it here? Please, create an issue sharing information about your project.
For more information on authoring your own extension consult the documentation and the source code of the extensions in this repository.
Contributions are welcome from everyone.
We have contribution guidelines to help you get started.
bud.js is licensed under MIT.
Keep track of development and community news.
- Join us on Roots Slack by becoming a GitHub sponsor
- Participate on the Roots Discourse
- Follow @rootswp on Twitter
- Read and subscribe to the Roots Blog
- Subscribe to the Roots Newsletter
Help support our open-source development efforts by becoming a patron.