roots/bud (@roots/bud)
### [`v6.20.0`](https://togithub.com/roots/bud/releases/tag/v6.20.0): 6.20.0
[Compare Source](https://togithub.com/roots/bud/compare/v6.19.1...v6.20.0)
This release is mainly focused around addressing errors related to [@roots/bud-preset-wordpress](https://togithub.com/roots/bud-preset-wordpress) and [@roots/sage](https://togithub.com/roots/sage) users.
#### Fixed: module reload problems
The origin of this problem stems from WordPress not enqueuing assets that depend on `wp-react-refresh-runtime` if the WordPress config variable `SCRIPT_DEBUG` is not `true`. bud.js will now check the `SCRIPT_DEBUG` env variable, and if `true` will use `wp-react-refresh-runtime`. Otherwise, that runtime will be included in the bundle and the script dependency will be left undeclared. In lieu of an environment variable you can call `bud.wp.setScriptDebug(true)` in your bud.js configuration.
If you opt in (either by calling the config function or setting the environment variable) you must make sure it is set in your WordPress config. If you do nothing, you'll probably be fine, but we recommend either setting the environment variable or calling the new config function if you experience conflicts between the WordPress core dev runtime and bud.js dev runtime.
#### Feature: Support for mapping tailwindcss `theme.spacing` values to theme.json
Call `bud.wp.json.useTailwindSpacing()` to source spacing values from your tailwind config.
#### Fix: Node 16 compatibility
Downgraded globby from v14 to v13 so as to maintain compatibility with Node 16. We will be moving to Node 20 with the next major release of bud.js but we want to maintain compatibility with Node 16 for all bud.js 6.x.x releases. You should see major benefits in performance and reliability using Node 20 so we definitely recommend upgrading as soon as possible, if you can.
#### What's Changed
- 📦 deps(patch): downgrade globby to v13 by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2532](https://togithub.com/roots/bud/pull/2532)
- 🩹 fix(patch): WordPress module reload failures by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2530](https://togithub.com/roots/bud/pull/2530)
- 📦 deps(patch): upgrade dependencies by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2534](https://togithub.com/roots/bud/pull/2534)
- ✨ feat(patch): add theme.spacing support to theme.json generator by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2528](https://togithub.com/roots/bud/pull/2528)
**Full Changelog**: https://github.com/roots/bud/compare/v6.19.1...v6.20.0
### [`v6.19.1`](https://togithub.com/roots/bud/releases/tag/v6.19.1): 6.19.1
[Compare Source](https://togithub.com/roots/bud/compare/v6.19.0...v6.19.1)
Fixes an issue where the bud.module cache was not properly invalidated, resulting in import errors when upgrading from earlier versions ([#2523](https://togithub.com/roots/bud/issues/2523)).
#### What's Changed
- 🩹 fix(patch): fix module cache invalidation by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2524](https://togithub.com/roots/bud/pull/2524)
**Full Changelog**: https://github.com/roots/bud/compare/v6.19.0...v6.19.1
### [`v6.19.0`](https://togithub.com/roots/bud/releases/tag/v6.19.0): 6.19.0
[Compare Source](https://togithub.com/roots/bud/compare/v6.18.0...v6.19.0)
This release reverts the [figures dependency](https://www.npmjs.com/package/figures) to v4 to maintain compatibility with Node 16. We will do this upgrade when we release the next major version of bud.js, and recommend all users move on to Node 20 as soon as possible. Still, we didn't intend to introduce this incompatibility in a minor release (v6.18.0).
This also fixes errors with [inlined assets](https://bud.js.org/learn/modules/static-assets#inlining-assets) when using [@roots/bud-vue](https://bud.js.org/extensions/bud-vue). This required reordering some module rules (which is why this release is a minor release rather than a patch). If you are using the `build.module.rules` hook (or any of its inner hooks, like `build.module.rules.oneOf`), you may need to update code if you are relying on the rules being ordered in a particular way. Thanks to [@rkaalma](https://togithub.com/rkaalma) for the report.
There also corrects a sneaky issue where expanded environment variables were not always being overridden as designed.
Lastly, there have been improvements made to the handling of webpack plugin instances used directly with `bud.extensions.add` or [bud.use](https://bud.js.org/reference/bud.use). Related tests have been improved along with the [example config](https://togithub.com/roots/bud/blob/main/examples/webpack-plugin/bud.config.ts). You should also see these plugins in the `bud doctor` listing in a more easily identifiable way.
#### Related issues
- [#2508 \[bug\] @roots/bud-support 6.18.0 now makes Bud require Node 18+](https://togithub.com/roots/bud/issues/2508)
- [#2518 \[bug\] @roots/bud-vue: ?inline query parameter breaks build](https://togithub.com/roots/bud/issues/2518)
#### What's Changed
- 🩹 fix(patch): revert upgrade of figures to 5.0.0 by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2510](https://togithub.com/roots/bud/pull/2510)
- ✨ improve(patch): improve [@roots/bud-vue](https://togithub.com/roots/bud-vue) by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2509](https://togithub.com/roots/bud/pull/2509)
- 📦 deps(patch): upgrade dependencies by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2511](https://togithub.com/roots/bud/pull/2511)
- ✨ improve(patch): improve webpack plugin api by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2515](https://togithub.com/roots/bud/pull/2515)
- 🩹 fix(patch): fix expanded env overrides by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2516](https://togithub.com/roots/bud/pull/2516)
- 🩹 fix(minor): fix [#2518](https://togithub.com/roots/bud/issues/2518) by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2519](https://togithub.com/roots/bud/pull/2519)
**Full Changelog**: https://github.com/roots/bud/compare/v6.18.0...v6.19.0
### [`v6.18.0`](https://togithub.com/roots/bud/releases/tag/v6.18.0): 6.18.0
[Compare Source](https://togithub.com/roots/bud/compare/v6.17.0...v6.18.0)
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](https://togithub.com/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](https://bud.js.org/learn/config/files/env#configurable-environment-variables) (`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](https://bud.js.org/reference/bud.addConfig)**: config function which accepts a path to another config file to run.
- **[bud.lazy](https://bud.js.org/reference/bud.lazy)**: config function to configure lazy compilation settings.
##### Improved
- [bud.devtool](https://bud.js.org/reference/bud.devtool), [bud.hash](https://bud.js.org/reference/bud.hash) [bud.minimize](https://bud.js.org/reference/bud.minimize), [bud.persist](https://bud.js.org/reference/bud.persist), and [bud.runtime](https://bud.js.org/reference/bud.runtime) now accept `Bud` as an argument so they can be more readily combined with functions like [bud.when](https://bud.js.org/reference/bud.when) (e.g. `bud.when(bud.isDevelopment, bud.devtool)`).
- [bud.hash](https://bud.js.org/reference/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](https://bud.js.org/learn/cli/build/development)**: Help menu with keyboard shortcuts (toggle with `h`).
- YML configs now support dot notation in config keys. See [updated documentation](https://bud.js.org/learn/config/files/bud.config#configuring-budjs-with-yml).
- **[bud repl](https://bud.js.org/learn/cli/repl)**: This command is now more responsive to terminal window sizing (it was previously capped at 10 rows).
- **[bud clean](https://bud.js.org/learn/cli/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
- ✨ improve(minor): improve extension interoperability by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2474](https://togithub.com/roots/bud/pull/2474)
- 🧪 test(none): improve test cache management by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2477](https://togithub.com/roots/bud/pull/2477)
- ✨ improve(patch): cli and logging by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2481](https://togithub.com/roots/bud/pull/2481)
- ✨ improve(minor): bud dev dx by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2482](https://togithub.com/roots/bud/pull/2482)
- 🩹 fix(patch): fix --silent and --no-dashboard output by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2485](https://togithub.com/roots/bud/pull/2485)
- ✨ feat(minor): lazy compilation facade and flag by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2486](https://togithub.com/roots/bud/pull/2486)
- 🩹 fix(patch): Add `roots` to eslint globals by [@joshuafredrickson](https://togithub.com/joshuafredrickson) in [https://github.com/roots/bud/pull/2479](https://togithub.com/roots/bud/pull/2479)
- 🩹 fix(patch): fix browserslist db errors by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2490](https://togithub.com/roots/bud/pull/2490)
- ✨ improve(patch): Improve error handling and logging by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2494](https://togithub.com/roots/bud/pull/2494)
- 🩹 fix (patch): doctor subcommand by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2498](https://togithub.com/roots/bud/pull/2498)
- ✨feat(minor): browserslist auto upgrade by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2493](https://togithub.com/roots/bud/pull/2493)
- ✨ improve(patch): improve browserslist upgrade behavior by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2499](https://togithub.com/roots/bud/pull/2499)
- 🩹 fix(patch): fix cache dir by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2500](https://togithub.com/roots/bud/pull/2500)
- ✨ improve(patch): cli arguments by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2501](https://togithub.com/roots/bud/pull/2501)
- 🩹 fix(patch): fix macos notifier default by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2502](https://togithub.com/roots/bud/pull/2502)
- ✨ feat(minor): add acorn opt-out by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2503](https://togithub.com/roots/bud/pull/2503)
- ✨ improve(patch): improve facades by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2504](https://togithub.com/roots/bud/pull/2504)
**Full Changelog**: https://github.com/roots/bud/compare/v6.17.0...v6.18.0
### [`v6.17.0`](https://togithub.com/roots/bud/releases/tag/v6.17.0): 6.17.0
[Compare Source](https://togithub.com/roots/bud/compare/v6.16.1...v6.17.0)
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](https://togithub.com/roots/bud#community-extensions) 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](https://togithub.com/roots/bud/issues/2444)).
Also includes a few minor bug fixes and updates to transitive dependencies.
#### ⚠️ Breaking Changes
##### [@roots/bud-postcss](https://togithub.com/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
- ✨ improve(patch): prevent duplicate entrypoint imports by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2451](https://togithub.com/roots/bud/pull/2451)
- ✨ improve(patch): better organize server service by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2453](https://togithub.com/roots/bud/pull/2453)
- ✨ improve(patch): cleanup doctor command by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2452](https://togithub.com/roots/bud/pull/2452)
- ✨ improve(patch): [@roots/bud-stylelint](https://togithub.com/roots/bud-stylelint) api by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2454](https://togithub.com/roots/bud/pull/2454)
- ✨ improve(patch): upgradeable community extensions by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2448](https://togithub.com/roots/bud/pull/2448)
- ✨ improve(patch): improve [@roots/bud-solid](https://togithub.com/roots/bud-solid) exports map by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2457](https://togithub.com/roots/bud/pull/2457)
- ✨ improve(minor): reasonable defaults for purgecss ([@roots/bud-purgecss](https://togithub.com/roots/bud-purgecss)) by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2443](https://togithub.com/roots/bud/pull/2443)
- ✨ improve(patch): improve [@roots/bud-esbuild](https://togithub.com/roots/bud-esbuild) exports map by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2458](https://togithub.com/roots/bud/pull/2458)
- ✨ improve(patch): bud upgrade by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2464](https://togithub.com/roots/bud/pull/2464)
- 🩹 fix(none): create-bud-app readme template link update by [@talss89](https://togithub.com/talss89) in [https://github.com/roots/bud/pull/2446](https://togithub.com/roots/bud/pull/2446)
- 📦 deps(minor): upgrade dependencies by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2436](https://togithub.com/roots/bud/pull/2436)
- 📦 deps(patch): upgrade dependencies by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2461](https://togithub.com/roots/bud/pull/2461)
- 📦 deps(patch): bump systeminformation from 5.11.25 to 5.21.8 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/roots/bud/pull/2456](https://togithub.com/roots/bud/pull/2456)
- 📁 types(patch): improve typings ([@roots/bud-react](https://togithub.com/roots/bud-react)) by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2442](https://togithub.com/roots/bud/pull/2442)
- 📕 docs(none): `--target` becomes `--filter` by [@talss89](https://togithub.com/talss89) in [https://github.com/roots/bud/pull/2460](https://togithub.com/roots/bud/pull/2460)
- 📕 docs(none): improve root README.md by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2462](https://togithub.com/roots/bud/pull/2462)
- 📕 docs(none): fix community extensions URL in README.md by [@talss89](https://togithub.com/talss89) in [https://github.com/roots/bud/pull/2447](https://togithub.com/roots/bud/pull/2447)
- 📕 docs(none): add community extensions to README.md by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2445](https://togithub.com/roots/bud/pull/2445)
- 🧹 chore(none): Update sponsors by [@retlehs](https://togithub.com/retlehs) in [https://github.com/roots/bud/pull/2450](https://togithub.com/roots/bud/pull/2450)
**Full Changelog**: https://github.com/roots/bud/compare/v6.16.1...v6.17.0
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
6.16.1
->6.20.0
6.16.1
->6.20.0
6.16.1
->6.20.0
Release Notes
roots/bud (@roots/bud)
### [`v6.20.0`](https://togithub.com/roots/bud/releases/tag/v6.20.0): 6.20.0 [Compare Source](https://togithub.com/roots/bud/compare/v6.19.1...v6.20.0) This release is mainly focused around addressing errors related to [@roots/bud-preset-wordpress](https://togithub.com/roots/bud-preset-wordpress) and [@roots/sage](https://togithub.com/roots/sage) users. #### Fixed: module reload problems The origin of this problem stems from WordPress not enqueuing assets that depend on `wp-react-refresh-runtime` if the WordPress config variable `SCRIPT_DEBUG` is not `true`. bud.js will now check the `SCRIPT_DEBUG` env variable, and if `true` will use `wp-react-refresh-runtime`. Otherwise, that runtime will be included in the bundle and the script dependency will be left undeclared. In lieu of an environment variable you can call `bud.wp.setScriptDebug(true)` in your bud.js configuration. If you opt in (either by calling the config function or setting the environment variable) you must make sure it is set in your WordPress config. If you do nothing, you'll probably be fine, but we recommend either setting the environment variable or calling the new config function if you experience conflicts between the WordPress core dev runtime and bud.js dev runtime. #### Feature: Support for mapping tailwindcss `theme.spacing` values to theme.json Call `bud.wp.json.useTailwindSpacing()` to source spacing values from your tailwind config. #### Fix: Node 16 compatibility Downgraded globby from v14 to v13 so as to maintain compatibility with Node 16. We will be moving to Node 20 with the next major release of bud.js but we want to maintain compatibility with Node 16 for all bud.js 6.x.x releases. You should see major benefits in performance and reliability using Node 20 so we definitely recommend upgrading as soon as possible, if you can. #### What's Changed - 📦 deps(patch): downgrade globby to v13 by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2532](https://togithub.com/roots/bud/pull/2532) - 🩹 fix(patch): WordPress module reload failures by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2530](https://togithub.com/roots/bud/pull/2530) - 📦 deps(patch): upgrade dependencies by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2534](https://togithub.com/roots/bud/pull/2534) - ✨ feat(patch): add theme.spacing support to theme.json generator by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2528](https://togithub.com/roots/bud/pull/2528) **Full Changelog**: https://github.com/roots/bud/compare/v6.19.1...v6.20.0 ### [`v6.19.1`](https://togithub.com/roots/bud/releases/tag/v6.19.1): 6.19.1 [Compare Source](https://togithub.com/roots/bud/compare/v6.19.0...v6.19.1) Fixes an issue where the bud.module cache was not properly invalidated, resulting in import errors when upgrading from earlier versions ([#2523](https://togithub.com/roots/bud/issues/2523)). #### What's Changed - 🩹 fix(patch): fix module cache invalidation by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2524](https://togithub.com/roots/bud/pull/2524) **Full Changelog**: https://github.com/roots/bud/compare/v6.19.0...v6.19.1 ### [`v6.19.0`](https://togithub.com/roots/bud/releases/tag/v6.19.0): 6.19.0 [Compare Source](https://togithub.com/roots/bud/compare/v6.18.0...v6.19.0) This release reverts the [figures dependency](https://www.npmjs.com/package/figures) to v4 to maintain compatibility with Node 16. We will do this upgrade when we release the next major version of bud.js, and recommend all users move on to Node 20 as soon as possible. Still, we didn't intend to introduce this incompatibility in a minor release (v6.18.0). This also fixes errors with [inlined assets](https://bud.js.org/learn/modules/static-assets#inlining-assets) when using [@roots/bud-vue](https://bud.js.org/extensions/bud-vue). This required reordering some module rules (which is why this release is a minor release rather than a patch). If you are using the `build.module.rules` hook (or any of its inner hooks, like `build.module.rules.oneOf`), you may need to update code if you are relying on the rules being ordered in a particular way. Thanks to [@rkaalma](https://togithub.com/rkaalma) for the report. There also corrects a sneaky issue where expanded environment variables were not always being overridden as designed. Lastly, there have been improvements made to the handling of webpack plugin instances used directly with `bud.extensions.add` or [bud.use](https://bud.js.org/reference/bud.use). Related tests have been improved along with the [example config](https://togithub.com/roots/bud/blob/main/examples/webpack-plugin/bud.config.ts). You should also see these plugins in the `bud doctor` listing in a more easily identifiable way. #### Related issues - [#2508 \[bug\] @roots/bud-support 6.18.0 now makes Bud require Node 18+](https://togithub.com/roots/bud/issues/2508) - [#2518 \[bug\] @roots/bud-vue: ?inline query parameter breaks build](https://togithub.com/roots/bud/issues/2518) #### What's Changed - 🩹 fix(patch): revert upgrade of figures to 5.0.0 by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2510](https://togithub.com/roots/bud/pull/2510) - ✨ improve(patch): improve [@roots/bud-vue](https://togithub.com/roots/bud-vue) by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2509](https://togithub.com/roots/bud/pull/2509) - 📦 deps(patch): upgrade dependencies by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2511](https://togithub.com/roots/bud/pull/2511) - ✨ improve(patch): improve webpack plugin api by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2515](https://togithub.com/roots/bud/pull/2515) - 🩹 fix(patch): fix expanded env overrides by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2516](https://togithub.com/roots/bud/pull/2516) - 🩹 fix(minor): fix [#2518](https://togithub.com/roots/bud/issues/2518) by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2519](https://togithub.com/roots/bud/pull/2519) **Full Changelog**: https://github.com/roots/bud/compare/v6.18.0...v6.19.0 ### [`v6.18.0`](https://togithub.com/roots/bud/releases/tag/v6.18.0): 6.18.0 [Compare Source](https://togithub.com/roots/bud/compare/v6.17.0...v6.18.0) 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](https://togithub.com/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](https://bud.js.org/learn/config/files/env#configurable-environment-variables) (`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](https://bud.js.org/reference/bud.addConfig)**: config function which accepts a path to another config file to run. - **[bud.lazy](https://bud.js.org/reference/bud.lazy)**: config function to configure lazy compilation settings. ##### Improved - [bud.devtool](https://bud.js.org/reference/bud.devtool), [bud.hash](https://bud.js.org/reference/bud.hash) [bud.minimize](https://bud.js.org/reference/bud.minimize), [bud.persist](https://bud.js.org/reference/bud.persist), and [bud.runtime](https://bud.js.org/reference/bud.runtime) now accept `Bud` as an argument so they can be more readily combined with functions like [bud.when](https://bud.js.org/reference/bud.when) (e.g. `bud.when(bud.isDevelopment, bud.devtool)`). - [bud.hash](https://bud.js.org/reference/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](https://bud.js.org/learn/cli/build/development)**: Help menu with keyboard shortcuts (toggle with `h`). - YML configs now support dot notation in config keys. See [updated documentation](https://bud.js.org/learn/config/files/bud.config#configuring-budjs-with-yml). - **[bud repl](https://bud.js.org/learn/cli/repl)**: This command is now more responsive to terminal window sizing (it was previously capped at 10 rows). - **[bud clean](https://bud.js.org/learn/cli/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 - ✨ improve(minor): improve extension interoperability by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2474](https://togithub.com/roots/bud/pull/2474) - 🧪 test(none): improve test cache management by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2477](https://togithub.com/roots/bud/pull/2477) - ✨ improve(patch): cli and logging by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2481](https://togithub.com/roots/bud/pull/2481) - ✨ improve(minor): bud dev dx by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2482](https://togithub.com/roots/bud/pull/2482) - 🩹 fix(patch): fix --silent and --no-dashboard output by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2485](https://togithub.com/roots/bud/pull/2485) - ✨ feat(minor): lazy compilation facade and flag by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2486](https://togithub.com/roots/bud/pull/2486) - 🩹 fix(patch): Add `roots` to eslint globals by [@joshuafredrickson](https://togithub.com/joshuafredrickson) in [https://github.com/roots/bud/pull/2479](https://togithub.com/roots/bud/pull/2479) - 🩹 fix(patch): fix browserslist db errors by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2490](https://togithub.com/roots/bud/pull/2490) - ✨ improve(patch): Improve error handling and logging by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2494](https://togithub.com/roots/bud/pull/2494) - 🩹 fix (patch): doctor subcommand by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2498](https://togithub.com/roots/bud/pull/2498) - ✨feat(minor): browserslist auto upgrade by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2493](https://togithub.com/roots/bud/pull/2493) - ✨ improve(patch): improve browserslist upgrade behavior by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2499](https://togithub.com/roots/bud/pull/2499) - 🩹 fix(patch): fix cache dir by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2500](https://togithub.com/roots/bud/pull/2500) - ✨ improve(patch): cli arguments by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2501](https://togithub.com/roots/bud/pull/2501) - 🩹 fix(patch): fix macos notifier default by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2502](https://togithub.com/roots/bud/pull/2502) - ✨ feat(minor): add acorn opt-out by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2503](https://togithub.com/roots/bud/pull/2503) - ✨ improve(patch): improve facades by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2504](https://togithub.com/roots/bud/pull/2504) **Full Changelog**: https://github.com/roots/bud/compare/v6.17.0...v6.18.0 ### [`v6.17.0`](https://togithub.com/roots/bud/releases/tag/v6.17.0): 6.17.0 [Compare Source](https://togithub.com/roots/bud/compare/v6.16.1...v6.17.0) 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](https://togithub.com/roots/bud#community-extensions) 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](https://togithub.com/roots/bud/issues/2444)). Also includes a few minor bug fixes and updates to transitive dependencies. #### ⚠️ Breaking Changes ##### [@roots/bud-postcss](https://togithub.com/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 - ✨ improve(patch): prevent duplicate entrypoint imports by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2451](https://togithub.com/roots/bud/pull/2451) - ✨ improve(patch): better organize server service by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2453](https://togithub.com/roots/bud/pull/2453) - ✨ improve(patch): cleanup doctor command by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2452](https://togithub.com/roots/bud/pull/2452) - ✨ improve(patch): [@roots/bud-stylelint](https://togithub.com/roots/bud-stylelint) api by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2454](https://togithub.com/roots/bud/pull/2454) - ✨ improve(patch): upgradeable community extensions by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2448](https://togithub.com/roots/bud/pull/2448) - ✨ improve(patch): improve [@roots/bud-solid](https://togithub.com/roots/bud-solid) exports map by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2457](https://togithub.com/roots/bud/pull/2457) - ✨ improve(minor): reasonable defaults for purgecss ([@roots/bud-purgecss](https://togithub.com/roots/bud-purgecss)) by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2443](https://togithub.com/roots/bud/pull/2443) - ✨ improve(patch): improve [@roots/bud-esbuild](https://togithub.com/roots/bud-esbuild) exports map by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2458](https://togithub.com/roots/bud/pull/2458) - ✨ improve(patch): bud upgrade by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2464](https://togithub.com/roots/bud/pull/2464) - 🩹 fix(none): create-bud-app readme template link update by [@talss89](https://togithub.com/talss89) in [https://github.com/roots/bud/pull/2446](https://togithub.com/roots/bud/pull/2446) - 📦 deps(minor): upgrade dependencies by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2436](https://togithub.com/roots/bud/pull/2436) - 📦 deps(patch): upgrade dependencies by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2461](https://togithub.com/roots/bud/pull/2461) - 📦 deps(patch): bump systeminformation from 5.11.25 to 5.21.8 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/roots/bud/pull/2456](https://togithub.com/roots/bud/pull/2456) - 📁 types(patch): improve typings ([@roots/bud-react](https://togithub.com/roots/bud-react)) by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2442](https://togithub.com/roots/bud/pull/2442) - 📕 docs(none): `--target` becomes `--filter` by [@talss89](https://togithub.com/talss89) in [https://github.com/roots/bud/pull/2460](https://togithub.com/roots/bud/pull/2460) - 📕 docs(none): improve root README.md by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2462](https://togithub.com/roots/bud/pull/2462) - 📕 docs(none): fix community extensions URL in README.md by [@talss89](https://togithub.com/talss89) in [https://github.com/roots/bud/pull/2447](https://togithub.com/roots/bud/pull/2447) - 📕 docs(none): add community extensions to README.md by [@kellymears](https://togithub.com/kellymears) in [https://github.com/roots/bud/pull/2445](https://togithub.com/roots/bud/pull/2445) - 🧹 chore(none): Update sponsors by [@retlehs](https://togithub.com/retlehs) in [https://github.com/roots/bud/pull/2450](https://togithub.com/roots/bud/pull/2450) **Full Changelog**: https://github.com/roots/bud/compare/v6.16.1...v6.17.0Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR has been generated by Mend Renovate. View repository job log here.