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.