Bud v6.12.1 released

bud v6.12.1 released

Minor release with improvements and fixes for package resolution and caching

Fixes

Failure installing custom TypeScript version with yarn

Fixes an error encountered when trying to install a custom version of TypeScript while using @roots/bud-typescript with yarn classic. See #2216.

This issue is actually an upstream bug in yarn. But, our response sidesteps it and also improves compatibility with pnpm.

The short version: we don’t need to declare typescript as a peer dependency because of changes to bud.module made in bud v6. It will always try to resolve from the project context before using the built-in as a fallback.

So, even without peer dependencies defined by the extension, the following call (when made from the @roots/bud-typescript context) will always try and resolve the module first from node_modules/typescript, and then node_modules/@roots/bud-typescript/node_modules.

bud.module.resolve(`typescript`, import.meta.url)

The change that fixes #2216 has also been applied to @roots/bud-eslint and @roots/bud-babel. We’ll apply it to other packages which use peerDependencies in future releases.

Improvements

Include eslint and tailwind configs in build dependencies

#2233 Include tailwind & eslint configs in cached build dependencies adds discovered tailwind and eslint configs to the map of files the compiler uses to validate the cache. Hopefully changes made to your tailwind config will now be more reliably reflected in your next build without having to use the --force flag. Additionally, only modules related to the changed config will be invalidated, which will be much faster than wiping everything.

Prevent invoking multiple esbuild and/or esbuild-wasm modules

When transforming configuration modules authored in TypeScript bud.js will now prefer esbuild or esbuild-wasm as defined by package.json, if they are included. The built-in esbuild-wasm included in @roots/bud-support is used as a fallback. This should be a minor improvement for users who are using esbuild in some other way as part of their build.

Vendor bind decorator from helpful-decorators.

helpful-decorators is an awesome package but we are only using bind from it and it is used in a lot of places. This change eliminates the (modest) overhead associated with all the unused modules.

1 Like