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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

bud.js

MIT License npm Follow Roots

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

β„Ή Presets are a collection of extensions which are commonly used together. There are currently three presets: our general preset, a WordPress specific preset, and the preset used in the roots/sage theme.

Package name Usage Stable Release Preview Release
@roots/bud-preset-recommend πŸ“š Docs npm npm
@roots/bud-preset-wordpress πŸ“š Docs npm npm
@roots/sage πŸ“š Docs npm npm

Extensions

Language support & module preprocessors

β„Ή These extensions provide support for languages and syntaxes which are not understood by the browser and require compilation.

Name README Stable Release Preview Release
@roots/bud-babel πŸ“š Docs npm npm
@roots/bud-esbuild πŸ“š Docs npm npm
@roots/bud-mdx πŸ“š README npm npm
@roots/bud-postcss πŸ“š Docs npm npm
@roots/bud-sass πŸ“š Docs npm npm
@roots/bud-swc πŸ“š Docs npm npm
@roots/bud-typescript πŸ“š Docs npm npm

Optimization

β„Ή These extensions optimize compiled code and static assets to help ensure a high quality user experience in your app. They are typically only run in production mode.

Name README Stable Release Preview Release
@roots/bud-compress πŸ“š README npm npm
@roots/bud-criticalcss πŸ“š Docs npm npm
@roots/bud-imagemin πŸ“š Docs npm npm
@roots/bud-purgecss πŸ“š Docs npm npm

Features and framework support

β„Ή These extensions provide support for popular application frameworks like React & Vue. Make sure to install a compatible compiler or preprocessor.

Name README Stable Release Preview Release
@roots/bud-emotion πŸ“š Docs npm npm
@roots/bud-react πŸ“š Docs npm npm
@roots/bud-solid πŸ“š Docs npm npm
@roots/bud-tailwindcss πŸ“š Docs npm npm
@roots/bud-vue πŸ“š Docs npm npm

Code quality

β„Ή These extensions ensure source code conforms to a specified style. Linting configuration is expected to be provided by the user, but a base eslint config is available: @roots/eslint-config.

Name README Stable Release Preview Release
@roots/bud-eslint πŸ“š Docs npm npm
@roots/bud-prettier πŸ“š README npm npm
@roots/bud-stylelint πŸ“š Docs npm npm

WordPress specific

β„Ή All of these extensions are included in @roots/bud-preset-wordpress.

Name README Stable Release Preview Release
@roots/bud-tailwindcss-theme-json πŸ“š README npm npm
@roots/bud-wordpress-dependencies πŸ“š README npm npm
@roots/bud-wordpress-externals πŸ“š README npm npm
@roots/bud-wordpress-theme-json πŸ“š README npm npm

Community extensions

β„Ή The following extensions are maintained by the community. Please refrain from making issues in this repo regarding these extensions.

Name README Stable Release
bud-embedded πŸ“š README npm
bud-localtunnel πŸ“š README npm
bud-wp-editor-query πŸ“š README 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.

Core modules

β„Ή @roots/bud is actually made up of a number of packages. You only need to install @roots/bud to use bud.js.

Package name Usage Stable Release Preview Release
@roots/bud πŸ“š Docs npm npm
@roots/bud-api πŸ“š README npm npm
@roots/bud-build πŸ“š README npm npm
@roots/bud-cache πŸ“š README npm npm
@roots/bud-client πŸ“š README npm npm
@roots/bud-compiler πŸ“š README npm npm
@roots/bud-dashboard πŸ“š README npm npm
@roots/bud-entrypoints πŸ“š README npm npm
@roots/bud-extensions πŸ“š README npm npm
@roots/bud-framework πŸ“š README npm npm
@roots/bud-hooks πŸ“š README npm npm
@roots/bud-minify πŸ“š README npm npm
@roots/bud-server πŸ“š README npm npm
@roots/bud-support πŸ“š README npm npm

Support modules

β„Ή These packages are not specific to bud.js but are used by the framework. They could be used in other projects outside of the context of bud.js.

Name README Stable Release Preview Release
@roots/blade-loader πŸ“š README npm npm
@roots/browserslist-config πŸ“š README npm npm
@roots/container πŸ“š README npm npm
@roots/critical-css-webpack-plugin πŸ“š README npm npm
@roots/dependencies πŸ“š README npm npm
@roots/entrypoints-webpack-plugin πŸ“š README npm npm
@roots/eslint-config πŸ“š README npm npm
@roots/filesystem πŸ“š README npm npm
@roots/wordpress-dependencies-webpack-plugin πŸ“š README npm npm
@roots/wordpress-externals-webpack-plugin πŸ“š README npm npm
@roots/wordpress-hmr πŸ“š README npm npm
@roots/wordpress-theme-json-webpack-plugin πŸ“š README npm npm
@roots/wordpress-transforms πŸ“š README npm 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.js 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.

Carrot WordPress.com Worksite Safety Itineris