bud icon indicating copy to clipboard operation
bud copied to clipboard

High-performance build system that supports SWC, esbuild, and Babel

bud.js

MIT License npm Follow Roots

bud.js

Frontend build tools combining the best parts of Symfony Encore and Laravel Mix


What is bud.js?

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.

Goals

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

Features

Requirements

  • Node 16+
  • yarn 1.22 or higher
  • npm 8.3 or higher
  • Windows users must run bud.js under the Windows Subsystem for Linux.

Getting started

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.

Available modules

Presets

Name Usage Latest
@roots/bud-preset-recommend πŸ“š Usage npm
@roots/bud-preset-wordpress πŸ“š Usage npm
@roots/sage πŸ“š Usage npm

Extensions

Name Usage Latest
@roots/bud-babel πŸ“š Usage npm
@roots/bud-compress πŸ“š Usage npm
@roots/bud-criticalcss πŸ“š Usage npm
@roots/bud-emotion πŸ“š Usage npm
@roots/bud-entrypoints πŸ“š Usage npm
@roots/bud-esbuild πŸ“š Usage npm
@roots/bud-eslint πŸ“š Usage npm
@roots/bud-imagemin πŸ“š Usage npm
@roots/bud-mdx πŸ“š Usage npm
@roots/bud-postcss πŸ“š Usage npm
@roots/bud-prettier πŸ“š Usage npm
@roots/bud-purgecss πŸ“š Usage npm
@roots/bud-react πŸ“š Usage npm
@roots/bud-sass πŸ“š Usage npm
@roots/bud-solid πŸ“š Usage npm
@roots/bud-stylelint πŸ“š Usage npm
@roots/bud-swc πŸ“š Usage npm
@roots/bud-tailwindcss πŸ“š Usage npm
@roots/bud-terser πŸ“š Usage npm
@roots/bud-typescript πŸ“š Usage npm
@roots/bud-vue πŸ“š Usage npm
@roots/bud-wordpress-dependencies πŸ“š Usage npm
@roots/bud-wordpress-externals πŸ“š Usage npm
@roots/bud-wordpress-manifests πŸ“š Usage npm

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.

Contributing

Contributions are welcome from everyone.

We have contribution guidelines to help you get started.

License

bud.js is licensed under MIT.

Community

Keep track of development and community news.

Sponsors

Help support our open-source development efforts by becoming a patron.

KM Digital Carrot C21 Redwood Realty WordPress.com Pantheon