roots/bud
### [`v6.3.3`](https://togithub.com/roots/bud/releases/tag/v6.3.3)
[Compare Source](https://togithub.com/roots/bud/compare/v6.3.2...v6.3.3)
[Release notes also available on bud.js.org](https://bud.js.org/blog/6.3.3/).
##### 🩹 Fix: extensions api inconsistencies
This is only relevant if you are writing an extension for bud.js.
All extension lifecycle methods now have a single signature:
```ts
interface Method {
(bud: Bud, options: Options): Promise
}
```
This applies to: `init`, `register`, `boot`, `afterConfig`, `beforeBuild`, `make`, `apply` and `when`.
##### ✨ Improve: `@roots/bud-sass` configuration options
The [documentation for @roots/bud-sass](https://bud.js.org/extensions/bud-sass) has been updated.
##### Global Imports
Use the `bud.sass.importGlobal` function to make a scss module available throughout your stylesheets, regardless of scope.
```ts
bud.sass.importGlobal('@src/styles/variables')
```
If you have more than one stylesheet to import, you may use an array:
```ts
bud.sass.importGlobal([
'@src/styles/variables',
'@src/styles/mixins',
'@src/styles/functions',
])
```
##### Global Values
Use the `bud.sass.registerGlobal` function to ensure global styles are made available throughout your sass stylesheets, regardless of scope.
This function differs from `bud.sass.importGlobal` in that it can be passed arbitrary values.
```ts
bud.sass.registerGlobal('$foo: rgba(0, 0, 0, 1);')
```
If you want to divide these values up using an array, you may do so.
```ts
bud.sass.registerGlobal([
'$foo: rgba(0, 0, 0, 1);',
'$bar: rgba(255, 255, 255, 1);',
])
```
##### ✨ Improve: bud.alias
Resolved some inconsistencies between the function typings, documentation and implementation.
You are now able to use an array of values for an alias.The first resolvable module found will be used, checking in the order of the supplied array.
Example:
```ts
bud.alias('@app', [
bud.path('@src/scripts/app'),
bud.path('@src/scripts/utils'),
])
```
Finally, you may now also pass `false` to ignore a specific module.
You can do this with a signifier or a path:
```ts
bud.alias({
'ignored-module': false,
[bud.path('./ignored-module')]: false,
})
```
For those who remember: this basically replaces `null-loader`.
##### ✨ Improve: overlay and indicator web components
The hmr status indicator and client overlay are now using the shadow dom to more or less fully separate their styles from page styles.
All of the [@roots/bud-client](https://togithub.com/roots/bud/tree/main/sources/@roots/bud-client) scripts remain dependency free.
##### ℹ️ Release information
- 🩹 fix(patch): correct extensions api inconsistencies ([#1582](https://togithub.com/roots/bud/issues/1582))
- ✨ improve(patch): improve sass configuration api ([#1580](https://togithub.com/roots/bud/issues/1580))
- ✨ improve(patch): bud.alias ([#1581](https://togithub.com/roots/bud/issues/1581))
- ✨ improve(patch): use shadowdom for client ([#1578](https://togithub.com/roots/bud/issues/1578))
For more information [review the diff to see what's changed](https://togithub.com/roots/bud/compare/v6.3.2...v6.3.3).
### [`v6.3.2`](https://togithub.com/roots/bud/releases/tag/v6.3.2)
[Compare Source](https://togithub.com/roots/bud/compare/v6.3.1...v6.3.2)
[Read the release on bud.js.org](https://bud.js.org/blog/6.3.2)
##### 🩹 Fix: HMR failures when there are semantic errors in application code
An internal misconfiguration could have resulted in some app code errors hanging the HMR middleware. This has been addressed.
##### 🩹 Fix: `bud clean` command
This command has been fixed. The problem stemmed from a change made for the benefit of multi-compilers in v6.
##### 🩹 Fix: [@roots/sage](https://togithub.com/roots/sage) public path (when using acorn v2)
I didn't realize the project I was using to test bud in the context of Trellis/Bedrock/Acorn/Sage was using acorn v3 (which is still in alpha).
This caused some problems with public path in roots/sage projects using acorn@v2. Whoops!
Moving forward, I have set up an explicit e2e testing environment which includes acorn@v2 and acorn@v3 projects. Right now it is testing hmr compilation works in the browser.
In the future, there will be additional tests for:
- proxied wordpress uploads
- sage `@asset` directive
##### ⏪ Revert: chunk loading and formatting for es modules
This change from [v6.3.1](https://bud.js.org/blog/6.3.1/#-fix-chunk-loading-and-formatting-for-es-modules) has been reverted. Still, it is our current hope that users who enable esm
and have set a compatible build target will output es modules. What we're reverting is an enforcement of esm as an output format.
It turns out webpack also configures the `output.chunkFormat` and `output.chunkLoading` values based on the application's build `target` option, which is usually set in a browserslist config.
In the case of conflict, the behavior has been varied but largely undesirable. Additional testing is required in order to have any confidence in the behavior that will result from settings these values.
##### Release information
For more information \[review the diff to see what's changed(https://github.com/roots/bud/compare/v6.3.1...v6.3.2).
Configuration
📅 Schedule: Branch creation - "before 2am" in timezone America/Los_Angeles, Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ 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, click this checkbox.
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
6.3.1
->6.3.3
6.3.1
->6.3.3
6.3.1
->6.3.3
Release Notes
roots/bud
### [`v6.3.3`](https://togithub.com/roots/bud/releases/tag/v6.3.3) [Compare Source](https://togithub.com/roots/bud/compare/v6.3.2...v6.3.3) [Release notes also available on bud.js.org](https://bud.js.org/blog/6.3.3/). ##### 🩹 Fix: extensions api inconsistencies This is only relevant if you are writing an extension for bud.js. All extension lifecycle methods now have a single signature: ```ts interface Method { (bud: Bud, options: Options): PromiseConfiguration
📅 Schedule: Branch creation - "before 2am" in timezone America/Los_Angeles, Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ 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.