Parcel v2.9.0 includes many long requested features, including a brand new resolver with support for package.json "exports" and tsconfig.json features, support for ESM plugins and configs, and local Parcel plugins. It also improves performance with a new default JS minifier powered by SWC, incremental symbol propagation, and improved bundler data structures.
Blog post: https://parceljs.org/blog/v2-9-0/
Added
-
Core
- Add support for ESM plugins and configs – Details
- Add support for local parcel plugins – Details
- Incremental Symbol Propagation for improved performance and improved export errors in development – Details
- Add support for plugin tracing, which shows where time is being spent during a Parcel build – Details
- Support
.proxyrc.cjs
config files – Details - Add support for
loadConfig
function to resolver plugins – Details
-
Resolver
- New resolver implementation in Rust supporting package.json "exports" and "imports", and tsconfig.json "baseUrl", "paths", and "moduleSuffixes" – Details
-
JavaScript
-
Bundler
- Use BitSet for bundler intersections for improved performance – Details
-
Web Extensions
- Add support for
chrome_style
field – Details
- Add support for
Fixed
-
Core
- Improve error message when bundles do not have unique file names – Details
- Bump napi-rs to latest – Details, Details
- Fix pnpm autoinstall – Details
- Fix "does not exports" error for multiple assets returned by transformers – Details
- Remove v8-compile-cache – Details
- Update fast-glob – Details
- Update lmdb – Details
- Fixup DiagnosticCodeHighlight and SourceLocation columns – Details
- Bump
fastest-levenshtein
andxmldom
dependencies – Details
-
JavaScript
- Sort global deps before injecting imports to reduce cache invalidations – Details
- Only add export setter for non-ESM exports – Details
- Bump SWC – Details, Details, Details, Details,
Details - Deduplicate imports in hoist transformer – Details
- Allow buffer polyfill v5 or v6 – Details
- Fix packaging of synchronous reused bundles – Details
- Support eslint ^7.0.0 in
@parcel/validator-eslint
– Details - Improve
inlineEnvironment
performance – Details - Hoist exports to allow circular dependencies – Details
-
TypeScript
- Throw diagnostics as error on empty emit - Details
-
CSS
- Sort CSS module exports to reduce cache invalidations – Details
-
Bundler
-
Dev server
-
Elm
- Fix error when formatting build errors – Details