Presetter v8.3: Toolchain Refresh and Smarter Presets
ยท 2 min read
Presetter has kept shipping steady improvements since the v8.0 launch. The v8.3 update pulls those changes together with refreshed tooling, smarter defaults, and cleaner monorepo behavior.
Highlights Since v8.0โ
๐ Toolchain Upgrades (v8.2)โ
- Vitest 4 in
presetter-preset-essentials - Storybook 10 in
presetter-preset-web - Next.js 16 in
presetter-preset-next
โจ Smarter Defaults (v8.3)โ
- ESLint config discovery now prefers the closest config file per package
- Automatic binary resolution in
run,run-s, andrun-pfor preset-provided tools - Typecheck script included across preset package templates
๐งญ Monorepo Qualityโ
- Linting includes source + test files by default
- Workspace tests pick up
vitest.config{,.int,.e2e}.tsautomatically
Real-World Configuration Exampleโ
This simplified snippet mirrors how we run Presetter in a production monorepo (from ~/Repositories/core):
presetter.config.ts
import { asset, preset } from 'presetter';
import monorepo from 'presetter-preset-monorepo';
export default preset('core', {
extends: [monorepo],
variables: {
target: 'ES2024',
},
override: {
assets: (context) =>
context.isRepoRoot
? {
'vitest.config.ts': asset((current) => ({
...current,
default: {
...current?.default,
test: {
...current?.default?.test,
projects: ['*/*/vitest.config{,.int,.e2e}.ts'],
},
},
})),
}
: {
'eslint.config.ts': {
default: [
{
name: 'monorepo:override',
rules: {
'max-lines': 'off',
},
},
],
},
},
},
});
Upgrade Checklistโ
npm install --save-dev presetter@^8.3.0 \
presetter-preset-essentials@^8.3.0 \
presetter-preset-web@^8.3.0
# Regenerate configs after upgrading
npx presetter bootstrap
