Skip to content

Releases: roots/bud

6.18.0

30 Nov 19:54
Compare
Choose a tag to compare

This is a relatively big release but should not require any changes to your project configuration.

Node.js LTS is now 20.10 and bud.js has adopted it. We are still not doing anything that requires it but bud doctor will warn you to upgrade Node.js if you're still on 18 and will really warn you if you are using an even earlier version.

Previously, @roots/browserslist-config would update the can-i-use database as a post install script. This check has been moved into the bud.js application, running before compilation. It runs once per week and only if you have defined a browserslist property in package.json. It can be disabled by setting an environment variable (BUD_BROWSERSLIST_UPDATE=false), or with the --no-browserslist-update flag.

Fixed

  • Fixes an issue where sometimes a stale error notification would persist in the browser even after it was fixed in source.
  • Fixes an issue where sometimes installations could hang when using Yarn v3+.

New

  • bud.addConfig: config function which accepts a path to another config file to run.
  • bud.lazy: config function to configure lazy compilation settings.

Improved

  • bud.devtool, bud.hash bud.minimize, bud.persist, and bud.runtime now accept Bud as an argument so they can be more readily combined with functions like bud.when (e.g. bud.when(bud.isDevelopment, bud.devtool)).
  • bud.hash: Now accepts the hash generation function as a string, if you want to customize it.
  • --runtime flag: now accepts a string argument (e.g. --runtime=single, --runtime=multiple). It can still be used as a boolean flag: (e.g. --runtime, --no-runtime).
  • bud build development: Help menu with keyboard shortcuts (toggle with h).
  • YML configs now support dot notation in config keys. See updated documentation.
  • bud repl: This command is now more responsive to terminal window sizing (it was previously capped at 10 rows).
  • bud clean: This command now only lists directories which it actually removed.
  • All extensions now have a done method which returns the bud instance, for better chaining.
  • General improvements to logging (--log).
  • General improvements to exception handling.
  • Code minimizers (terser, etc.) are lazy loaded only when they are used, which is a performance gain.
  • html-webpack-plugin is lazy loaded only when it is being used, which is a performance gain.

What's Changed

Full Changelog: v6.17.0...v6.18.0

6.17.0

29 Sep 08:41
Compare
Choose a tag to compare

Improvements in 6.17.0 are mainly focused on @roots/bud-purgecss and @roots/bud-stylelint APIs. Also includes a way for community extensions to indicate compatibility with specific bud.js releases. This allows community extension authors to version their work independently of bud.js core and for users to update extensions along with core packages using the bud upgrade command (#2444).

Also includes a few minor bug fixes and updates to transitive dependencies.

⚠️ Breaking Changes

@roots/bud-postcss

Sensible defaults are applied automatically, making this extension zero config. There is a much better API available using bud.purge rather than bud.purgecss.

  • lf you have installed the extension but are not using it you will either want to remove the extension or explicitly disable it: bud.purge.enable(false).
  • bud.purgecss function is deprecated. You should configure purgecss using the extension API exposed with bud.purge. bud.purge.setOptions works exactly the same way as bud.purgecss does, but there is now a new, fully fluent API available to you as well.
  • bud.purgecss will not be removed until v7.

What's Changed

Full Changelog: v6.16.1...v6.17.0

6.16.1

08 Sep 08:11
Compare
Choose a tag to compare

Fix for bud upgrade command (when using yarn classic).

What's Changed

Full Changelog: v6.16.0...v6.16.1

6.16.0

08 Sep 05:45
Compare
Choose a tag to compare

This update adds css module support for scss when using @roots/bud-sass, improves the CLI dashboard, and adds experimental support for pnpm and yarn berry to the bud ugprade and create-bud-app commands. It also includes dependency updates, bug fixes and other internal improvements.

What's Changed

New Contributors

Full Changelog: v6.15.2...v6.16.0

6.15.2

17 Aug 19:04
Compare
Choose a tag to compare

Patch: fixes a potential issue with resolving sass-loader and improves bud.cache interface and build dependency identification.

What's Changed

Full Changelog: v6.15.1...v6.15.2

6.15.1

15 Aug 05:23
Compare
Choose a tag to compare

Fixes issues with create- bud-app when not specifying any features (totally vanilla project) and improves CLI command cache to be mostly self-healing.

What's Changed

Full Changelog: v6.15.0...v6.15.1

6.15.0

08 Aug 05:19
Compare
Choose a tag to compare

This release is mostly focused on maintaining and improving existing features. The one new feature lets you opt-out of externalizing certain WordPress dependencies (if you are using @roots/bud-preset-wordpress or @roots/sage). For more information check out the updated @roots/bud-preset-wordpress docs.

⚠️ Potentially breaking change

@roots/sage: previously bud.splitChunks('single') was called for production builds. This is no longer the default for two reasons:

  1. If you have an editor entrypoint and an app entrypoint (common), it is possible that editor dependencies could be extracted into the common chunk. This can lead to Acorn enqueuing those dependencies for both app and editor, even if they were only used in one (since the shared vendor module contains references to the dependencies).
  2. This is very easy to address as part of your application and that approach is preferred. Especially now that top-level async/await is available for bud.js application modules.
  3. If you really want a vendors chunk, just call bud.splitChunks() or pass the --splitChunks flag.

What's Changed

New Contributors

Full Changelog: v6.14.3...v6.15.0

6.14.3

11 Jul 16:27
Compare
Choose a tag to compare

Fixes and improvements.

What's Changed

New Contributors

Full Changelog: v6.14.2...v6.14.3

6.14.2

10 Jul 07:19
Compare
Choose a tag to compare

Fixes #2365: bud@16.4.1 incompatible with stylelint@15.10.1

What's Changed

Full Changelog: v6.14.1...v6.14.2

6.14.1

06 Jul 16:29
Compare
Choose a tag to compare

Quick turnaround for an issue in 6.14.0.

If you are effected by this you can work around it using --no-cache until you can update.

What's Changed

  • 🩹 fix(@roots/entrypoints-webpack-plugin): stale caching by @kellymears in #2363