1.29.0
New Rspack runner
Crafty now ships @swissquote/crafty-runner-rspack, a new bundler runner built on top of Rspack, the Rust-based webpack-compatible bundler.
It exposes the same configuration surface as the webpack runner (bundle options, presets, rspack extension method) so existing projects can opt-in with minimal changes, while benefiting from significantly faster builds.
Node.js 22.12 is now the minimum supported version, Node 24 is supported
The minimum required Node.js version moved from >=18 to >=22.12 across all packages. Crafty is now built and tested on Node 22 and Node 24 (#2897).
Make sure your CI and local environments run on Node 22.12 or newer before upgrading.
Stylelint version 17
Stylelint moved from 16 to 17, which removes deprecated rules and refreshes its internal stack (#3083).
Jest 30
crafty-preset-jest upgraded from Jest 29 to Jest 30, including jest-cli, jest-environment-jsdom and matching Babel dependencies.
Jest now automatically writes a SonarQube compatible report to reports/sonar-report.xml. You can change this default by changing options.reporters
Some deprecated functions, such as expect matchers have been removed, have a look at the Upgrade guide.
SARIF reports for ESLint and Stylelint
ESLint (#2828) and Stylelint (#2829) commands now generate SARIF reports. These can be consumed by SonarQube and other code-quality platforms without extra configuration. Make sure you add a line to your .gitignore to ignore that directory.
Replace webpack-plugin-serve with anypack-plugin-serve
The dev-server plugin used by both the webpack and the new Rspack runner is now anypack-plugin-serve, a runner-agnostic replacement that works seamlessly across both bundlers (#3061).
Replace eslint-import-resolver-node with eslint-plugin-import-x's createNodeResolver
eslint-plugin-import-x now ships its own Node resolver, so Crafty drops the standalone eslint-import-resolver-node dependency in favour of createNodeResolver (#3060).
Internal
- New Package Size workflow that reports per-package size deltas on PRs (#3062).
- Removed the unused
statoscopedependency (#3079). - Improved webpack compilation: more dependencies are pre-bundled to speed up builds (#2875).
- Sonar workflow unified into the main build workflow.
- Many SonarQube and lint issues fixed throughout the codebase.
- Generated ESLint configuration template fixed (#2941).
- Yarn upgraded to 4.14.1.
- Vitest upgraded to 4.1.5. Release notes
Tool updates
- ESLint: 9.29.0 to 9.39.4
- Stylelint: 16.21.0 to 17.8.0
- TypeScript: 5.8.3 to 5.9.3
- webpack: 5.99.9 to 5.106.2
- Rspack: introduced and upgraded to 2.0.0
- Jest: 29.7.0 to 30.3.0
- Vitest: 3.2.4 to 4.1.5
- babel: 7.27 to 7.29
- postcss: 8.5.6 to 8.5.12
- SWC: 1.12.6 to 1.15.32
- Lightningcss: 1.30.1 to 1.32.0
- Prettier: 3.6.0 to 3.8.3