Skip to content
/ bud Public

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

License

Notifications You must be signed in to change notification settings

roots/bud

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date
Jan 2, 2023
Jan 2, 2023
Jul 18, 2023
Jul 18, 2023
Jun 6, 2023
Jul 18, 2023
Jul 19, 2023
Jul 20, 2023
Jul 18, 2023
Dec 19, 2021
Mar 28, 2023
Jul 17, 2023
Aug 29, 2022
Jul 18, 2023
Jul 6, 2023
Jul 18, 2023
Jul 19, 2023

Repository files navigation

bud.js

MIT License npm Follow Roots

bud.js

Configurable, extensible build tools for modern single and multi-page web applications


What is bud.js?

Configurable, extensible build tools for modern single and multi-page web applications.

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

  • 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.
  • Customizable and extensible.

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

Quickly scaffold a new project with create-bud-app:

npx create-bud-app

If you want to add bud.js to an existing project or want to further customize the scaffolded app check out the Getting Started guide.

There are many example implementations 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-bud-tailwindcss-theme-json 📚 Usage npm
@roots/bud-minify 📚 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-theme-json 📚 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.

Packages

Also included in the bud monorepo are packages which are not specific to bud.js but are used by the framework. These packages could conceivably be used in other projects.

Name Latest
@roots/blade-loader npm
@roots/browserslist-config npm
@roots/container npm
@roots/critical-css-webpack-plugin npm
@roots/dependencies npm
@roots/entrypoints-webpack-plugin npm
@roots/eslint-config npm
@roots/filesystem npm
@roots/wordpress-dependencies-webpack-plugin npm
@roots/wordpress-externals-webpack-plugin npm
@roots/wordpress-hmr npm
@roots/wordpress-theme-json-webpack-plugin npm
@roots/wordpress-transforms npm

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

Bud is an open source project and completely free to use.

However, the amount of effort needed to maintain and develop new features and projects within the Roots ecosystem is not sustainable without proper financial backing. If you have the capability, please consider sponsoring Roots.

KM Digital Carrot WordPress.com Pantheon Worksite Safety Copia Digital