Releases: roots/bud
6.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 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
- ✨ improve(minor): improve extension interoperability by @kellymears in #2474
- 🧪 test(none): improve test cache management by @kellymears in #2477
- ✨ improve(patch): cli and logging by @kellymears in #2481
- ✨ improve(minor): bud dev dx by @kellymears in #2482
- 🩹 fix(patch): fix --silent and --no-dashboard output by @kellymears in #2485
- ✨ feat(minor): lazy compilation facade and flag by @kellymears in #2486
- 🩹 fix(patch): Add
roots
to eslint globals by @joshuafredrickson in #2479 - 🩹 fix(patch): fix browserslist db errors by @kellymears in #2490
- ✨ improve(patch): Improve error handling and logging by @kellymears in #2494
- 🩹 fix (patch): doctor subcommand by @kellymears in #2498
- ✨feat(minor): browserslist auto upgrade by @kellymears in #2493
- ✨ improve(patch): improve browserslist upgrade behavior by @kellymears in #2499
- 🩹 fix(patch): fix cache dir by @kellymears in #2500
- ✨ improve(patch): cli arguments by @kellymears in #2501
- 🩹 fix(patch): fix macos notifier default by @kellymears in #2502
- ✨ feat(minor): add acorn opt-out by @kellymears in #2503
- ✨ improve(patch): improve facades by @kellymears in #2504
Full Changelog: v6.17.0...v6.18.0
6.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 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 withbud.purge
.bud.purge.setOptions
works exactly the same way asbud.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 in #2451
- ✨ improve(patch): better organize server service by @kellymears in #2453
- ✨ improve(patch): cleanup doctor command by @kellymears in #2452
- ✨ improve(patch): @roots/bud-stylelint api by @kellymears in #2454
- ✨ improve(patch): upgradeable community extensions by @kellymears in #2448
- ✨ improve(patch): improve @roots/bud-solid exports map by @kellymears in #2457
- ✨ improve(minor): reasonable defaults for purgecss (@roots/bud-purgecss) by @kellymears in #2443
- ✨ improve(patch): improve @roots/bud-esbuild exports map by @kellymears in #2458
- ✨ improve(patch): bud upgrade by @kellymears in #2464
- 🩹 fix(none): create-bud-app readme template link update by @talss89 in #2446
- 📦 deps(minor): upgrade dependencies by @kellymears in #2436
- 📦 deps(patch): upgrade dependencies by @kellymears in #2461
- 📦 deps(patch): bump systeminformation from 5.11.25 to 5.21.8 by @dependabot in #2456
- 📁 types(patch): improve typings (@roots/bud-react) by @kellymears in #2442
- 📕 docs(none):
--target
becomes--filter
by @talss89 in #2460 - 📕 docs(none): improve root README.md by @kellymears in #2462
- 📕 docs(none): fix community extensions URL in README.md by @talss89 in #2447
- 📕 docs(none): add community extensions to README.md by @kellymears in #2445
- 🧹 chore(none): Update sponsors by @retlehs in #2450
Full Changelog: v6.16.1...v6.17.0
6.16.1
Fix for bud upgrade
command (when using yarn classic).
What's Changed
- 🩹 fix(patch): fix
bud upgrade
by @kellymears in #2438
Full Changelog: v6.16.0...v6.16.1
6.16.0
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
- 🩹 fix(patch): fix emotion plugin resolution (@roots/bud-emotion) by @kellymears in #2416
- 👍🏼 improve(patch): support
*.module.scss
(@roots/bud-sass) by @kellymears in #2421 - 📕 docs(none): syntax error when using default export -
filters.md
by @Hansanghyeon in #2420 - 👍🏼 improve(patch): prevent duplicate dashboard renders by @kellymears in #2422
- 👍🏼 improve(patch):
bud.watch
api by @kellymears in #2423 - 📕 docs(none): update
adding-postcss.mdx
by @nlemoine in #2425 - ✨ improve(patch): add
@roots/bud-support/jsx-runtime
by @kellymears in #2426 - 🩹 fix(patch): fix proxy url by @kellymears in #2427
- ✨ improve(patch): improve yarn berry and pnpm support by @kellymears in #2432
- 🩹 fix(patch): fix bud menu selection by @kellymears in #2433
- 📁 types(patch): fix @roots/bud-framework type exports by @kellymears in #2437
New Contributors
- @Hansanghyeon made their first contribution in #2420
Full Changelog: v6.15.2...v6.16.0
6.15.2
Patch: fixes a potential issue with resolving sass-loader
and improves bud.cache
interface and build dependency identification.
What's Changed
- ✨ improve(patch): improve cache.buildDependencies by @kellymears in #2410
- 🩹 fix(patch): sass-loader resolve by @kellymears in #2413
Full Changelog: v6.15.1...v6.15.2
6.15.1
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
- ✨ improve(patch): heal cli commands cache by @kellymears in #2400
- 🗂️ types(patch): include types directory (criticalcss) by @kellymears in #2401
- ✨ improve(patch): nested errors by @kellymears in #2402
- ✨ improve(patch): --use flag by @kellymears in #2403
- 🩹 fix(patch): create-bud-app fails when no dependencies are selected by @kellymears in #2404
- 📕 docs(none): wordpress preset code samples by @kellymears in #2405
- 📕 docs(none): entrypoints manifest by @kellymears in #2406
- 📦 deps(patch): upgrade dependencies by @kellymears in #2407
- ⚙️ internal(none): security.md by @kellymears in #2408
- 🩹 fix(patch): create-bud-app dependencies by @kellymears in #2409
Full Changelog: v6.15.0...v6.15.1
6.15.0
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:
- 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
andeditor
, even if they were only used in one (since the shared vendor module contains references to the dependencies). - 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.
- If you really want a vendors chunk, just call
bud.splitChunks()
or pass the--splitChunks
flag.
What's Changed
- 📕 docs: improve docs by @kellymears in #2368
- 🩹 fix(patch): register command type error after extension uninstall by @kellymears in #2372
- 👍🏼 improve(minor): internals & tests by @kellymears in #2373
- 🧹 chore(none): cleanup by @kellymears in #2376
- 📦 deps(patch): bump vitest from 0.32.2 to 0.33.0 by @dependabot in #2375
- 📦 deps(deps): bump @babel/core from 7.22.5 to 7.22.9 by @dependabot in #2374
- 📦 deps(deps): bump ts-loader from 9.4.3 to 9.4.4 by @dependabot in #2356
- 📦 deps(deps): bump @babel/runtime from 7.22.5 to 7.22.6 by @dependabot in #2355
- 📦 deps(minor): upgrade by @kellymears in #2377
- 🩹 fix(none): readme generation by @kellymears in #2378
- 🩹 fix(none): nightly release by @kellymears in #2383
- 🩹 fix: parallelism by @kellymears in #2386
- 👍🏼 improve: build performance by @kellymears in #2387
- 📦 deps(deps): bump word-wrap from 1.2.3 to 1.2.4 by @dependabot in #2384
- 📦 deps(deps): bump esbuild from 0.18.13 to 0.18.14 by @dependabot in #2379
- 👍🏼 improve: error handling by @kellymears in #2388
- 📦 deps(deps): bump esbuild-wasm from 0.18.13 to 0.18.14 by @dependabot in #2380
- ✨ feat(minor): configurable wordpress externals by @kellymears in #2389
- 🩹 fix(patch):
--editor
warning when--editor
not used by @kellymears in #2390 - 🩹 fix(patch): multi-compiler uncaught errors in dev by @kellymears in #2392
- 📕 docs: fix @roots/bud-sass installation docs by @xeader in #2391
- ✨ improve: stricter typings by @kellymears in #2393
- 🗂️ types(patch): strict typings by @kellymears in #2394
- ✨ improve: typings & tests by @kellymears in #2395
- 🗂️ types(none): improve typechecking by @kellymears in #2396
- 📕 docs(none): wordpress enqueues by @kellymears in #2397
- 🩹 fix(patch): fix casing in dashboard of Dev by @kellymears in #2398
- ✨ improve(minor): no split chunks (@roots/sage) by @kellymears in #2399
New Contributors
Full Changelog: v6.14.3...v6.15.0
6.14.3
Fixes and improvements.
What's Changed
- 🩹 fix <alpha-value> Tailwind placeholder by @StudioRectangle in #2369
- ✨ improve: tighten y-padding of dashboard elements by @kellymears in #2371
New Contributors
- @StudioRectangle made their first contribution in #2369
Full Changelog: v6.14.2...v6.14.3
6.14.2
Fixes #2365: bud@16.4.1 incompatible with stylelint@15.10.1
What's Changed
- 👍🏼 improve:
bud stylelint
compatibility by @kellymears in #2367 - 📦 deps(deps): bump syncpack from 10.6.1 to 10.7.3 by @dependabot in #2358
Full Changelog: v6.14.1...v6.14.2
6.14.1
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