### Fixed
- Core
- Fix duplicate bundles error message – [Details](https://github.com/parcel-bundler/parcel/pull/10119)
- JavaScript
- Support ESM externals and exports in dev packager – [Details](https://github.com/parcel-bundler/parcel/commit/424604880be6c20c1a11044bffad3fd02628d43d)
- Treat Deno's `jsr:` dependencies as external – [Details](https://github.com/parcel-bundler/parcel/commit/f08c0d60649be751c77672c1810cface016a6fcd)
v2.14.3 (2025-03-29)
### Fixed
- JavaScript
- Updated to React 19.1, which enables Server Components to be used with stable React instead of only canary – [Details](https://github.com/parcel-bundler/parcel/commit/104abbe96a1f357411bac113e821cbc0454f41a4)
v2.14.2 (2025-03-23)
### Fixed
- Core
- Enable resolving source field in dev dependencies – [Details](https://github.com/parcel-bundler/parcel/commit/432ee45517905d6284adfa7da42feb2ac7afaad6)
- Error when building a library target in serve mode – [Details](https://github.com/parcel-bundler/parcel/commit/3a566fd69830e43daa849c60b596c31dec5e3aff)
- JavaScript
- Fix MDX inline assets in static RSCs – [Details](https://github.com/parcel-bundler/parcel/commit/fbcd624f4bca70b48d6c61af8c842591bb1de188)
- Fix symbol collection with multiple exports of same function (e.g. date-fns) – [Details](https://github.com/parcel-bundler/parcel/commit/aca7f9c89d9531580f0d6e9cd8461634c894d0dc)
- REPL
- Fix error overlay resolution in REPL – [Details](https://github.com/parcel-bundler/parcel/commit/9dec3d8a5c6ff99aec83492fae8ef6b7c305dad5)
- create-parcel
- Fix gitignore in create-parcel – [Details](https://github.com/parcel-bundler/parcel/commit/d8053053dfd7f712d85ab7d883fff603baec00a6)
- Fix create-parcel on windows – [Details](https://github.com/parcel-bundler/parcel/commit/02e8fa8eaed7a009cfd4d77501f6dbb18361a912)
### Fixed
- JavaScript
- Fix HMR when asset is duplicated between multiple bundles – [Details](https://github.com/parcel-bundler/parcel/commit/bc43a4d9e7c6f3b2dc28bf115710fe8b2bf535cc)
- SASS
- Fix SASS resolution with non `file:` URLs – [Details](https://github.com/parcel-bundler/parcel/commit/2a6bbc56d2ecad904a6a0dea4208b8cc6e6a3f07)
v2.13.1 (2024-11-25)
### Fixed
- JavaScript
- Improve HMR with dynamic imports – [Details](https://github.com/parcel-bundler/parcel/pull/10017)
- Update SWC – [Details](https://github.com/parcel-bundler/parcel/commit/15c77cbe7557fb441df5d0fc09dab220f55fa4db)
- SASS
- Fix SASS resolution rules for modern API – [Details](https://github.com/parcel-bundler/parcel/pull/10018)
v2.13.0 (2024-11-12)
### Added
- Core
- Expose watcher ignore and watcher backend options – [Details](https://github.com/parcel-bundler/parcel/pull/9547)
- Improve large watcher events payload experience – [Details](https://github.com/parcel-bundler/parcel/pull/9583)
- Add support for globs in package.json#source – [Details](https://github.com/parcel-bundler/parcel/pull/9590)
- Add config key invalidation – [Details](https://github.com/parcel-bundler/parcel/pull/9597)
- Bundler
- Add library bundler – [Details](https://github.com/parcel-bundler/parcel/pull/9489), [Docs](https://parceljs.org/getting-started/library/#improving-tree-shaking)
- Dev Server
- Support .proxyrc.ts – [Details](https://github.com/parcel-bundler/parcel/pull/9654), [Docs](https://parceljs.org/features/development/#.proxyrc.js%2F.proxyrc.ts)
- Resolver
- 12x faster resolver cache – [Details](https://github.com/parcel-bundler/parcel/pull/9984)
- Correctly handle empty resolver diagnostics array – [Details](https://github.com/parcel-bundler/parcel/pull/9407)
### Fixed
- Core
- Remove abortcontroller-polyfill – [Details](https://github.com/parcel-bundler/parcel/pull/9592)
- Fix missing content key in symbol propagation when asset is removed – [Details](https://github.com/parcel-bundler/parcel/pull/9627)
- Update minimum supported node version to 16 – [Details](https://github.com/parcel-bundler/parcel/pull/9645)
- Ensure the snapshot directory matches the watch dir – [Details](https://github.com/parcel-bundler/parcel/pull/9653)
- Add parcel version to PluginOptions – [Details](https://github.com/parcel-bundler/parcel/pull/9671)
- Fix possible race condition in the caching of request graph – [Details](https://github.com/parcel-bundler/parcel/pull/9675)
- Ensure empty extended config throws a diagnostic – [Details](https://github.com/parcel-bundler/parcel/pull/9701)
- Ensure Asset public ids are assigned deterministically – [Details](https://github.com/parcel-bundler/parcel/pull/9706)
- Directories ignored by watcher should be relative to the watch directory – [Details](https://github.com/parcel-bundler/parcel/pull/9703)
- Fix request tracker incremental cache write for new nodes – [Details](https://github.com/parcel-bundler/parcel/pull/9719)
- Improve request graph cache reading – [Details](https://github.com/parcel-bundler/parcel/pull/9721)
- Exit process with error code when reporters fail – [Details](https://github.com/parcel-bundler/parcel/pull/9735)
- Write tmp files to the OS tmp directory - [Details](https://github.com/parcel-bundler/parcel/pull/9580)
- Fix small HMR issues – [Details](https://github.com/parcel-bundler/parcel/pull/9869)
- Fix crash in EntryRequest with multiple globs in the source field – [Details](https://github.com/parcel-bundler/parcel/pull/9901)
- Revert split manifest runtime bundles – [Details](https://github.com/parcel-bundler/parcel/pull/9955)
- Revert chunked cache blobs for improved stability – [Details](https://github.com/parcel-bundler/parcel/pull/9965)
- Update dependencies – [Details](https://github.com/parcel-bundler/parcel/pull/9968)
- Bundler
- Fix assets outside project root with Manual Shared Bundles – [Details](https://github.com/parcel-bundler/parcel/pull/9734)
- JavaScript
- Avoid non-identifier export names in non-entry library bundles – [Details](https://github.com/parcel-bundler/parcel/pull/9587)
- Relax react-refresh version range – [Details](https://github.com/parcel-bundler/parcel/pull/9624)
- Also emit swc recoverable errors – [Details](https://github.com/parcel-bundler/parcel/pull/9650)
- Bump swc – [Details](https://github.com/parcel-bundler/parcel/pull/9574), [Details](https://github.com/parcel-bundler/parcel/pull/9818), [Details](https://github.com/parcel-bundler/parcel/pull/9967), [Details](https://github.com/parcel-bundler/parcel/commit/cfd26ec900b2dc8f85818d2a5a212d60b1036d39)
- Bump swc and browserslist-rs – [Details](https://github.com/parcel-bundler/parcel/pull/9838)
- Replace std::sync locks with parking_lot locks for better stability – [Details](https://github.com/parcel-bundler/parcel/pull/9731)
- Ensure const modules in async bundles are wrapped – [Details](https://github.com/parcel-bundler/parcel/pull/9740)
- Fix dev packager global reference – [Details](https://github.com/parcel-bundler/parcel/pull/9814)
- Fix import usage tracking for destructure defaulting – [Details](https://github.com/parcel-bundler/parcel/pull/9842)
- Update Node.js globals replacer to use SWC VisitMut – [Details](https://github.com/parcel-bundler/parcel/pull/9830)
- Update `process.env` replacer to use SWC VisitMut – [Details](https://github.com/parcel-bundler/parcel/pull/9852)
- Update Node.js `__filename` and `__dirname` replace to use SWC VisitMut – [Details](https://github.com/parcel-bundler/parcel/pull/9855)
- Fix parcelRequire being added to multi-target libraries – [Details](https://github.com/parcel-bundler/parcel/pull/9904)
- Handle TypeScript expressions in macro evaluator – [Details](https://github.com/parcel-bundler/parcel/commit/0bebfa6c53d0cc7b50c12a384ccc8fb13dc4de31)
- Resolver
- Fix NUL byte crash in resolver – [Details](https://github.com/parcel-bundler/parcel/pull/9640)
- Change default resolver error message for custom specifiers – [Details](https://github.com/parcel-bundler/parcel/pull/9378)
- TypeScript
- Handle dynamic import type references in TS types transformer – [Details](https://github.com/parcel-bundler/parcel/pull/9573)
- Correctly handle qualified names in TS types import() – [Details](https://github.com/parcel-bundler/parcel/pull/9579)
- SASS
- Migrate to new sass API – [Details](https://github.com/parcel-bundler/parcel/pull/9966)
- SVG
- Load svgo version from project – [Details](https://github.com/parcel-bundler/parcel/pull/9969)
- Update svgr and use project svgo version – [Details](https://github.com/parcel-bundler/parcel/commit/71acf875ede7dfcf3d12b8d25fd50b56339aa43a)
- Image
- Bump oxipng – [Details](https://github.com/parcel-bundler/parcel/commit/6b8c8643a5f3aa44723bcde3c1318b68cd5f6999)
- Vue
- Upgrade consolidate to v1 – [Details](https://github.com/parcel-bundler/parcel/pull/9570)
- Web Extensions
- Allow both service_worker and scripts in MV3 Web Extensions – [Details](https://github.com/parcel-bundler/parcel/pull/9673)
v2.12.0 (2024-02-28)
Blog post: https://parceljs.org/blog/v2-12-0/
### Added
- Core
- Add REPL playground for Parcel to the website – [Details](https://github.com/parcel-bundler/parcel/pull/9365)
- Improve package manager detection for auto install – [Details](https://github.com/parcel-bundler/parcel/pull/9505)
- JavaScript
- Add support for JS macros – [Details](https://github.com/parcel-bundler/parcel/pull/9299)
- Statically evaluate constants referenced by macros – [Details](https://github.com/parcel-bundler/parcel/pull/9487)
- Upgrade to ESLint 8 – [Details](https://github.com/parcel-bundler/parcel/pull/8580)
- Bump swc – [Details](https://github.com/parcel-bundler/parcel/pull/9498)
- CSS
- Use lightningcss to implement CSS packager – [Details](https://github.com/parcel-bundler/parcel/pull/8492)
- Bundler
- Rename "parentAsset" to "root" for Manual Shared Bundle config and remove unstable prefix – [Details](https://github.com/parcel-bundler/parcel/pull/9486)
- Web Extensions
- Add content script world property to manifest schema validation – [Details](https://github.com/parcel-bundler/parcel/pull/9510)
- Performance
- Adjacency list optimizations – [Details](https://github.com/parcel-bundler/parcel/pull/9444)
- Break up request graph cache serialisation and run after build completion – [Details](https://github.com/parcel-bundler/parcel/pull/9384)
### Fixed
- Core
- Drop per-pipeline transformation cache – [Details](https://github.com/parcel-bundler/parcel/pull/9459)
- Clippy and use napi's Either3 – [Details](https://github.com/parcel-bundler/parcel/pull/9047)
- Add lazy/eager cache key to avoid invalid change when switching modes – [Details](https://github.com/parcel-bundler/parcel/pull/9518)
- JavaScript
- Remove decl_collector pass and use SWC's unresolved_mark instead – [Details](https://github.com/parcel-bundler/parcel/pull/9520)
- Bundler
- Fix multiple css bundles in entry bundle groups issue – [Details](https://github.com/parcel-bundler/parcel/pull/9023)
- Allow parallel type change bundles to be reused by async siblings – [Details](https://github.com/parcel-bundler/parcel/pull/9504)
- Skip on missing parent asset for manual shared bundles – [Details](https://github.com/parcel-bundler/parcel/pull/9538)
### Unstable
- Add source map support to the inline-require optimizer – [Details](https://github.com/parcel-bundler/parcel/pull/9511)
v2.11.0 (2024-01-02)
## [2.11.0] - 2023-12-19
### Added
- Dev
- Log build phase times for dev builds [Details](https://github.com/parcel-bundler/parcel/pull/9371)
- Progress messages for writing to cache [Details](https://github.com/parcel-bundler/parcel/pull/9368)
- VSC Extension JSON schema [Details](https://github.com/parcel-bundler/parcel/pull/9386)
- Print phase times on development builds [Details](https://github.com/parcel-bundler/parcel/pull/9417)
- Publish bundle-stats-cli and parcel-query [Details](https://github.com/parcel-bundler/parcel/pull/9431)
### Fixed
- Dev
- Increase threshold for showing progress bar to 500k nodes [Details](https://github.com/parcel-bundler/parcel/pull/9421)
- Fix parcel-query [Details](https://github.com/parcel-bundler/parcel/pull/9425)
- FIX[dev-server]: Fix html file matching from URL [Details](https://github.com/parcel-bundler/parcel/pull/9347)
- Fix parcel query's inspect cache [Details](https://github.com/parcel-bundler/parcel/pull/9436)
- Bug fix for exiting early when identifying requestGraph in loadGraphs [Details](https://github.com/parcel-bundler/parcel/pull/9437)
- Fix HMR on .localhost domains [Details](https://github.com/parcel-bundler/parcel/pull/9435)
- Modify parcel query to not require all graphs on startup [Details](https://github.com/parcel-bundler/parcel/pull/9426)
- Bug fix for async Parcel-query [Details](https://github.com/parcel-bundler/parcel/pull/9442)
- Remove reliance on requestTracker in loadGraphs [Details](https://github.com/parcel-bundler/parcel/pull/9440)
- Core
- Reduce redundancy in the RequestGraph's Request, Env, and Option nodes [Details](https://github.com/parcel-bundler/parcel/pull/9383)
- Move registerCoreWithSerializer to its own file [Details](https://github.com/parcel-bundler/parcel/pull/9396)
- Filter --expose-gc and --max-semi-space-size execArgv Node args from workers [Details](https://github.com/parcel-bundler/parcel/pull/9399)
- Optimize Symbol Propagation (propagateSymbolsUp) [Details](https://github.com/parcel-bundler/parcel/pull/9337)
- Convert Request Graph node types + request node requestTypes to numbers [Details](https://github.com/parcel-bundler/parcel/pull/9412)
- fsFixture: ignore empty lines in fixtures [Details](https://github.com/parcel-bundler/parcel/pull/9423)
- Unstable File Invalidations [Details](https://github.com/parcel-bundler/parcel/pull/9420)
- Configurable watch root [Details](https://github.com/parcel-bundler/parcel/pull/9424)
- Resolver
- Add ~ and / support to the glob resolver [Details](https://github.com/parcel-bundler/parcel/pull/9188)
- JavaScript
- Bump swc [Details](https://github.com/parcel-bundler/parcel/pull/9389)
- Bumping lightningcss to 1.22.1 [Details](https://github.com/parcel-bundler/parcel/pull/9401)
- Fix CI [Details](https://github.com/parcel-bundler/parcel/pull/9404)
- Change inline-requires to only run when optimizing [Details](https://github.com/parcel-bundler/parcel/pull/9403)
- Fix tsconfig extends from node_modules [Details](https://github.com/parcel-bundler/parcel/pull/9419)
- Bump some deps [Details](https://github.com/parcel-bundler/parcel/pull/9406)
- Bump swc and napi-rs [Details](https://github.com/parcel-bundler/parcel/pull/9408)
- Fix references to packages.atlassian.com [Details](https://github.com/parcel-bundler/parcel/pull/9430)
- Fix build-ts step [Details](https://github.com/parcel-bundler/parcel/pull/9439)
- Bump rimraf version to ^5.05 [Details](https://github.com/parcel-bundler/parcel/pull/9438)
- Use centos image with newer Node 16 [Details](https://github.com/parcel-bundler/parcel/pull/9447)
v2.10.3 (2023-11-15)
### Fixed
- Core
- Mark previously deferred assets as dirty for symbol prop - [Details](https://github.com/parcel-bundler/parcel/pull/9369)
- Write bundle graph to cache if error occurs during bundling - [Details](https://github.com/parcel-bundler/parcel/pull/9366)
- Fixing issues when `import * as` is used with `export *` - [Details](https://github.com/parcel-bundler/parcel/pull/9331)
- Writing cache in chunks - [Details](https://github.com/parcel-bundler/parcel/pull/9355)
- Reduce redundancy in the RequestGraph's file nodes - [Details](https://github.com/parcel-bundler/parcel/pull/9360)
- Fix dependency retargeting with ambiguous reexports - [Details](https://github.com/parcel-bundler/parcel/pull/9380)
- JavaScript
- Fixing behavior for `hasOwnProperty` in modules exporting member with same name - [Details](https://github.com/parcel-bundler/parcel/pull/9362)
- WebExtension
- Don't crash if WebExt has no content_scripts - [Details](https://github.com/parcel-bundler/parcel/pull/9341)
- PostHTML, Pug, Stylus
- Simplified calls to `invalidateOnFileChange` - [Details](https://github.com/parcel-bundler/parcel/pull/9379)
v2.10.2 (2023-11-02)
### Fixed
- Core
- Use clz32 for counting trailing zeroes – [Details](https://github.com/parcel-bundler/parcel/pull/9340)
- JavaScript
- Do not wrap duplicated assets when they are in different targets – [Details](https://github.com/parcel-bundler/parcel/pull/9348)
v2.10.1 (2023-10-24)
### Fixed
- Core
- Use modern node versions in CI [Details](https://github.com/parcel-bundler/parcel/pull/9323)
- Support multiple workspaces/clients in Parcel for VSCode [Details](https://github.com/parcel-bundler/parcel/pull/9278)
- Bundler
- Make sure to set unique key [Details](https://github.com/parcel-bundler/parcel/pull/9326)
- Fix bundler tests assertions on Windows [Details](https://github.com/parcel-bundler/parcel/pull/9333)
- JavaScript
- Add logic to disable scope hoisting if the `this` key word is pointing to an export module [Details](https://github.com/parcel-bundler/parcel/pull/9291)
- Detect TSC polyfills to avoid marking them as CJS [Details](https://github.com/parcel-bundler/parcel/pull/9318)
- Remove `this` exports tracking for files with module syntax [Details](https://github.com/parcel-bundler/parcel/pull/9330)
- Bump swc [Details](https://github.com/parcel-bundler/parcel/pull/9306)
### Unstable
- Bundler
- Fix inline constants in shared bundles [Details](https://github.com/parcel-bundler/parcel/pull/9313)
- Use Manual "name" for publicIds, remove source bundles from Unique Keys [Details](https://github.com/parcel-bundler/parcel/pull/9298)
- Simplify MSB code for code split bundle creation section [Details](https://github.com/parcel-bundler/parcel/pull/9312)
v2.10.0 (2023-10-11)
Parcel v2.10.0 includes big performance improvements, an improved `--lazy` mode, reduced runtime bundle sizes, web extension improvements, and tons of bug fixes and improvements.
### Added
- Core
- Add support for include and exclude globs for `--lazy` mode – [Details](https://github.com/parcel-bundler/parcel/pull/9166), [Details](https://github.com/parcel-bundler/parcel/pull/9260)
- Merge all native Rust modules into one package – [Details](https://github.com/parcel-bundler/parcel/pull/9146)
- Add async resolver and JS transformer functions using rayon – [Details](https://github.com/parcel-bundler/parcel/pull/9147)
- Support "register" tools in module loader (e.g. `@babel/register`, `esbuild-register`, `ts-node`) – [Details](https://github.com/parcel-bundler/parcel/pull/9285)
- Limit default number of JS workers to 4 to improve memory usage/performance – [Details](https://github.com/parcel-bundler/parcel/pull/9300)
- Bundler
- Optimize bundler performance – [Details](https://github.com/parcel-bundler/parcel/pull/9266)
- Add disableSharedBundles config option – [Details](https://github.com/parcel-bundler/parcel/pull/9209)
- Resolver
- Support node: prefix for CJS dependencies – [Details](https://github.com/parcel-bundler/parcel/pull/9244), [Details](https://github.com/parcel-bundler/parcel/pull/9250)
- JavaScript
- Add import helper to decrease ESM loader runtime footprint – [Details](https://github.com/parcel-bundler/parcel/pull/9148)
- Support parallel bundle imports in libraries – [Details](https://github.com/parcel-bundler/parcel/pull/9156)
- Only include `globalThis` polyfill for old browsers – [Details](https://github.com/parcel-bundler/parcel/pull/9199)
- Updated parcelRequire.register to be minifiable – [Details](https://github.com/parcel-bundler/parcel/pull/9216)
- CSS
- Add include and exclude globs for CSS modules – [Details](https://github.com/parcel-bundler/parcel/pull/9301)
- WASM
- Add WASM packager with source map support – [Details](https://github.com/parcel-bundler/parcel/pull/9009)
- XML
- Transform xml-stylesheet processing instructions – [Details](https://github.com/parcel-bundler/parcel/pull/9102)
- Web Extensions
- Add support for Chrome Extension manifest V3 side_panel property – [Details](https://github.com/parcel-bundler/parcel/pull/9178)
- Improve HMR for web extensions – [Details](https://github.com/parcel-bundler/parcel/pull/9068)
- Web Manifest
- Add support for icons in file_handlers – [Details](https://github.com/parcel-bundler/parcel/pull/9152)
### Fixed
- Core
- Query glibc version only once to speed up JSTransformer on Linux – [Details](https://github.com/parcel-bundler/parcel/pull/9117)
- Refresh cache before writing contents to bundle – [Details](https://github.com/parcel-bundler/parcel/pull/9123)
- Fix `--lazy` mode bugs – [Details](https://github.com/parcel-bundler/parcel/pull/9093)
- Ignore no-opt command line option – [Details](https://github.com/parcel-bundler/parcel/pull/9239)
- Bump lmdb – [Details](https://github.com/parcel-bundler/parcel/pull/9253)
- Don't hide error when diagnostic is malformed – [Details](https://github.com/parcel-bundler/parcel/pull/9283)
- Don't autoinstall local files in package manager – [Details](https://github.com/parcel-bundler/parcel/pull/9242)
- Fix bug with cache and glob entries – [Details](https://github.com/parcel-bundler/parcel/pull/9264)
- JavaScript
- Migrate to swc_core – [Details](https://github.com/parcel-bundler/parcel/pull/9131)
- Move ESM loader runtime to absolute URLs – [Details](https://github.com/parcel-bundler/parcel/pull/9172)
- Fix duplicate asset references – [Details](https://github.com/parcel-bundler/parcel/pull/9109)
- Bump swc – [Details](https://github.com/parcel-bundler/parcel/pull/9200), [Details](https://github.com/parcel-bundler/parcel/pull/9234), [Details](https://github.com/parcel-bundler/parcel/pull/9271)
- Fix shorthand identifier import usage – [Details](https://github.com/parcel-bundler/parcel/pull/9222)
- Ensure nested member expressions are marked used in dev mode – [Details](https://github.com/parcel-bundler/parcel/pull/9258)
- Set ascii_only for swc emit – [Details](https://github.com/parcel-bundler/parcel/pull/9243)
- Add tests for non-identifier symbol names – [Details](https://github.com/parcel-bundler/parcel/pull/8388)
- Bundler
- Exclude inline assests from parallel request limit – [Details](https://github.com/parcel-bundler/parcel/pull/9194)
- Fix unexpected undefined when creating shared bundles – [Details](https://github.com/parcel-bundler/parcel/pull/9195)
- Images
- Bump oxipng from 6.0.0 -> 8.0.0 – [Details](https://github.com/parcel-bundler/parcel/pull/9135)
- Sass
- Fix sass import edge case – [Details](https://github.com/parcel-bundler/parcel/pull/9256)
- Dev Server
- Fix index page loading in dev server when bundle type isn't html – [Details](https://github.com/parcel-bundler/parcel/pull/9282)
### Unstable
- Core
- Expose unstable_transform and unstable_resolve APIs – [Details](https://github.com/parcel-bundler/parcel/pull/9193)
- Bundler
- Add unstable manual shared bundles config – [Details](https://github.com/parcel-bundler/parcel/pull/9251)
- JavaScript
- Experimental inline / deferred requires optimiser – [Details](https://github.com/parcel-bundler/parcel/pull/9221)
- Add constants inlining optimization – [Details](https://github.com/parcel-bundler/parcel/pull/9241)
- Add unstable async bundle runtime to the JS Packager – [Details](https://github.com/parcel-bundler/parcel/pull/9227)
v2.9.3 (2023-06-25)
### Fixed
- Resolver
- Fix the development and production package conditions – [Details](https://github.com/parcel-bundler/parcel/pull/9108)
- JavaScript
- Update SWC to fix generics in JSX elements – [Details](https://github.com/parcel-bundler/parcel/pull/9104)
v2.9.2 (2023-06-08)
### Fixed
- Core
- Fix infinite loop when entries look like globs – [Details](https://github.com/parcel-bundler/parcel/pull/9020)
- Fix proxyrc require from path – [Details](https://github.com/parcel-bundler/parcel/pull/9069)
- JavaScript
- Treat re-exports of `*` from empty files with `sideEffects: false` as ESM – [Details](https://github.com/parcel-bundler/parcel/pull/9079)
- CSS
- Fix self references error in CSS module JS assets causing "Bundle group cannot have more than one entry bundle of the same type" – [Details](https://github.com/parcel-bundler/parcel/pull/9080)
- Dev server
- Serve folder's index when requesting folder without slash – [Details](https://github.com/parcel-bundler/parcel/pull/9066)
- Web extensions
- Allow source maps files in webextension – [Details](https://github.com/parcel-bundler/parcel/pull/8541)
- Image
- Add core as peerdep to image optimizer – [Details](https://github.com/parcel-bundler/parcel/pull/9070)
v2.9.1 (2023-05-27)
### Fixed
- Resolver
- Ignore invalid package.json "type" field values – [Details](https://github.com/parcel-bundler/parcel/pull/9049)
- Ignore duplicate slashes at the start of relative path specifiers – [Details](https://github.com/parcel-bundler/parcel/pull/9048)
v2.9.0 (2023-05-26)
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](https://github.com/parcel-bundler/parcel/pull/8913)
- Add support for local parcel plugins – [Details](https://github.com/parcel-bundler/parcel/pull/8925)
- Incremental Symbol Propagation for improved performance and improved export errors in development – [Details](https://github.com/parcel-bundler/parcel/pull/8723)
- Add support for plugin tracing, which shows where time is being spent during a Parcel build – [Details](https://github.com/parcel-bundler/parcel/pull/8695)
- Support `.proxyrc.cjs` config files – [Details](https://github.com/parcel-bundler/parcel/pull/8833)
- Add support for `loadConfig` function to resolver plugins – [Details](https://github.com/parcel-bundler/parcel/pull/8847)
- Resolver
- New resolver implementation in Rust supporting package.json "exports" and "imports", and tsconfig.json "baseUrl", "paths", and "moduleSuffixes" – [Details](https://github.com/parcel-bundler/parcel/pull/8807)
- JavaScript
- Switch to SWC minifier instead of Terser by default – [Details](https://github.com/parcel-bundler/parcel/pull/8860)
- Split large runtime manifest into separate bundles to reduce cache invalidations – [Details](https://github.com/parcel-bundler/parcel/pull/8837)
- Respect `addExternalDependency` in Babel plugins – [Details](https://github.com/parcel-bundler/parcel/pull/7820)
- Bundler
- Use BitSet for bundler intersections for improved performance – [Details](https://github.com/parcel-bundler/parcel/pull/8862)
- Web Extensions
- Add support for `chrome_style` field – [Details](https://github.com/parcel-bundler/parcel/pull/8867)
### Fixed
- Core
- Improve error message when bundles do not have unique file names – [Details](https://github.com/parcel-bundler/parcel/pull/8784)
- Bump napi-rs to latest – [Details](https://github.com/parcel-bundler/parcel/pull/8838), [Details](https://github.com/parcel-bundler/parcel/pull/8918)
- Fix pnpm autoinstall – [Details](https://github.com/parcel-bundler/parcel/pull/8788)
- Fix "does not exports" error for multiple assets returned by transformers – [Details](https://github.com/parcel-bundler/parcel/pull/8947)
- Remove v8-compile-cache – [Details](https://github.com/parcel-bundler/parcel/pull/8990)
- Update fast-glob – [Details](https://github.com/parcel-bundler/parcel/pull/8996)
- Update lmdb – [Details](https://github.com/parcel-bundler/parcel/pull/8999)
- Fixup DiagnosticCodeHighlight and SourceLocation columns – [Details](https://github.com/parcel-bundler/parcel/pull/8965)
- Bump `fastest-levenshtein` and `xmldom` dependencies – [Details](https://github.com/parcel-bundler/parcel/pull/9017)
- JavaScript
- Sort global deps before injecting imports to reduce cache invalidations – [Details](https://github.com/parcel-bundler/parcel/pull/8818)
- Only add export setter for non-ESM exports – [Details](https://github.com/parcel-bundler/parcel/pull/8910)
- Bump SWC – [Details](https://github.com/parcel-bundler/parcel/pull/8881), [Details](https://github.com/parcel-bundler/parcel/pull/8933), [Details](https://github.com/parcel-bundler/parcel/pull/8983), [Details](https://github.com/parcel-bundler/parcel/pull/9010),
[Details](https://github.com/parcel-bundler/parcel/pull/9034)
- Deduplicate imports in hoist transformer – [Details](https://github.com/parcel-bundler/parcel/pull/8954)
- Allow buffer polyfill v5 or v6 – [Details](https://github.com/parcel-bundler/parcel/pull/8959)
- Fix packaging of synchronous reused bundles – [Details](https://github.com/parcel-bundler/parcel/pull/8934)
- Support eslint ^7.0.0 in `@parcel/validator-eslint` – [Details](https://github.com/parcel-bundler/parcel/pull/8997)
- Improve `inlineEnvironment` performance – [Details](https://github.com/parcel-bundler/parcel/pull/9014)
- Hoist exports to allow circular dependencies – [Details](https://github.com/parcel-bundler/parcel/pull/9024)
- TypeScript
- Throw diagnostics as error on empty emit - [Details](https://github.com/parcel-bundler/parcel/pull/8914)
- CSS
- Sort CSS module exports to reduce cache invalidations – [Details](https://github.com/parcel-bundler/parcel/pull/8817)
- Bundler
- Fix missing edge error when using for multiple targets – [Details](https://github.com/parcel-bundler/parcel/pull/8854)
- Fix non-deterministic builds between project directories – [Details](https://github.com/parcel-bundler/parcel/pull/8869)
- Fix css-module related build error in bundling – [Details](https://github.com/parcel-bundler/parcel/pull/8885)
- Fix multiple entries pointing to wrong bundle in dist – [Details](https://github.com/parcel-bundler/parcel/pull/8991)
- Dev server
- Don't error during HMR on `` elements without hrefs – [Details](https://github.com/parcel-bundler/parcel/pull/8800)
- Improve server index file matching – [Details](https://github.com/parcel-bundler/parcel/pull/8957)
- Don't send HMR updates before packaging in watch mode – [Details](https://github.com/parcel-bundler/parcel/pull/9026)
- Elm
- Fix error when formatting build errors – [Details](https://github.com/parcel-bundler/parcel/pull/8882)
v2.8.3 (2023-01-18)
- Core
- filter out title execArgv to workers – [Details](https://github.com/parcel-bundler/parcel/pull/8719)
- Bundler
- Fix CSS order when merging type change bundles – [Details](https://github.com/parcel-bundler/parcel/pull/8766)
- Fix assertion error when mixing CSS modules and non-modules – [Details](https://github.com/parcel-bundler/parcel/pull/8762)
- Fix set diff – [Details](https://github.com/parcel-bundler/parcel/pull/8699)
- Recursively check reachability when removing asset graphs from bundles in deduplication – [Details](https://github.com/parcel-bundler/parcel/pull/6004)
- JavaScript
- Don't retarget dependencies if a symbol is imported multiple times with different local names – [Details](https://github.com/parcel-bundler/parcel/pull/8738)
- Fix assigning to `this` in CommonJS – [Details](https://github.com/parcel-bundler/parcel/pull/8737)
- Bump SWC to fix dead branch removal bug – [Details](https://github.com/parcel-bundler/parcel/pull/8742)
- Bump swc to fix sourcemaps with Windows line endings – [Details](https://github.com/parcel-bundler/parcel/pull/8756)
- Add test cases for ESM initialization problems – [Details](https://github.com/parcel-bundler/parcel/pull/7350)
- TypeScript
- Fix TSC sourcemaps metadata – [Details](https://github.com/parcel-bundler/parcel/pull/8734)
- HTML
- Fix `srcset` parsing – [Details](https://github.com/parcel-bundler/parcel/pull/8671)
- Dev server
- Apply HMR updates in topological order – [Details](https://github.com/parcel-bundler/parcel/pull/8752)
- Fixed the hmr connection with host 0.0.0.0 – [Details](https://github.com/parcel-bundler/parcel/pull/7357)
v2.8.2 (2022-12-14)
## Fixed
- Core
- Ensure maxListeners for process.stdout accounts for workers – [Details](https://github.com/parcel-bundler/parcel/pull/8689)
- JavaScript
- Bump SWC to fix scoping issue with block-less loops – [Details](https://github.com/parcel-bundler/parcel/pull/8686)
- Fix requires of external CommonJS SWC helpers – [Details](https://github.com/parcel-bundler/parcel/pull/8693)
v2.8.1 (2022-12-08)
### Fixed
- Core
- fix: remove @parcel/utils dep in @parcel/graph – [Details](https://github.com/parcel-bundler/parcel/pull/8630)
- JavaScript
- Don't retarget dependencies with `*` – [Details](https://github.com/parcel-bundler/parcel/pull/8645)
- Fix overriding single export of a `export *` – [Details](https://github.com/parcel-bundler/parcel/pull/8653)
- Add mjs and cjs to resolver extensions – [Details](https://github.com/parcel-bundler/parcel/pull/8667)
- TypeScript
- Make ts-types transformer work with TS >= 4.8 – [Details](https://github.com/parcel-bundler/parcel/pull/8661)
- Web manifest
- Parse shortcut icons in web app manifests – [Details](https://github.com/parcel-bundler/parcel/pull/8660)
- SVG
- Fix transformer-svg-react not finding `.svgrrc` – [Details](https://github.com/parcel-bundler/parcel/pull/7741)
v2.8.0 (2022-11-09)
Blog post: https://parceljs.org/blog/v2-8-0/
### Added
- Core
- Code splitting across reexports using symbol data by splitting dependencies – [Details](https://github.com/parcel-bundler/parcel/pull/8432)
- Update without bundling for non-dependency related changes – [Details](https://github.com/parcel-bundler/parcel/pull/6514)
- Improve performance of incremental bundling – [Details](https://github.com/parcel-bundler/parcel/pull/8583)
- Only serialize and send shared references to workers that need them – [Details](https://github.com/parcel-bundler/parcel/pull/8589)
- Improve performance of HMR by not waiting for packaging – [Details](https://github.com/parcel-bundler/parcel/pull/8582)
- JavaScript
- Verify version when resolving Node builtin polyfills – [Details](https://github.com/parcel-bundler/parcel/pull/8387)
- Add `loadBundleConfig` method to Packager plugins – [Details](https://github.com/parcel-bundler/parcel/pull/8370)
- SVG
- Generate typescript for SVGs when using svgr and typescript option – [Details](https://github.com/parcel-bundler/parcel/pull/8411)
- Bundler
- Move experimental bundler to default – [Details](https://github.com/parcel-bundler/parcel/pull/8607)
### Fixed
- Core
- Fix verbose warning: reexport all doesn't include default – [Details](https://github.com/parcel-bundler/parcel/pull/8451)
- Support multiple edge types in Graph.hasEdge – [Details](https://github.com/parcel-bundler/parcel/pull/8550)
- Ensure edge exists before removal in Graph.removeEdge – [Details](https://github.com/parcel-bundler/parcel/pull/8554)
- Disable splitting dependencies on symbols for non-scope hoisted bundles – [Details](https://github.com/parcel-bundler/parcel/pull/8565)
- Fix TypeScript definitions for Parcel config API – [Details](https://github.com/parcel-bundler/parcel/pull/8362)
- Use traverseAssets in packager to improve performance – [Details](https://github.com/parcel-bundler/parcel/pull/8592)
- Make uniqueKey undefined by default – [Details](https://github.com/parcel-bundler/parcel/pull/8601)
- Catch uncaught promise build abort race – [Details](https://github.com/parcel-bundler/parcel/pull/8600)
- Bump parcel dependencies – [Details](https://github.com/parcel-bundler/parcel/pull/8611)
- JavaScript
- Bump SWC - [Details](https://github.com/parcel-bundler/parcel/pull/8390), [Details](https://github.com/parcel-bundler/parcel/pull/8537)
- Fix Chrome Android browserslist support check – [Details](https://github.com/parcel-bundler/parcel/pull/8447)
- Fix CommonJS symbol collection without scope hoisting – [Details](https://github.com/parcel-bundler/parcel/pull/8555)
- Make React Refresh debounce call on the leading edge – [Details](https://github.com/parcel-bundler/parcel/pull/8593)
- Retain correct dependency order between imports and reexports without scopehoisting – [Details](https://github.com/parcel-bundler/parcel/pull/8591)
- Bundler
- Consider sibling in available assets to younger sibling for parallel deps – [Details](https://github.com/parcel-bundler/parcel/pull/8414)
- Don't merge isolated child assets – [Details](https://github.com/parcel-bundler/parcel/pull/8527)
- Do not merge isolated bundles in experimental bundler – [Details](https://github.com/parcel-bundler/parcel/pull/8566)
- Implement min bundles configuration – [Details](https://github.com/parcel-bundler/parcel/pull/8599)
- Dev server
- Include `Content-Length` header in HEAD requests – [Details](https://github.com/parcel-bundler/parcel/pull/8416)
- Vue
- Fix errors displaying errors when compiling Vue SFCs – [Details](https://github.com/parcel-bundler/parcel/pull/8497)
- Add file path to error code frames – [Details](https://github.com/parcel-bundler/parcel/pull/8499)
- Fix location of errors – [Details](https://github.com/parcel-bundler/parcel/pull/8501)
- Image
- Upgrade sharp – [Details](https://github.com/parcel-bundler/parcel/pull/8568)
- TypeScript
- Allow configuring module resolution – [Details](https://github.com/parcel-bundler/parcel/pull/8448)
- Web extensions
- Fix service worker packaging in web extensions – [Details](https://github.com/parcel-bundler/parcel/pull/8424)
v2.7.0 (2022-08-03)
### Added
- Core
- Log resolved targets in verbose log level for debugging - [Details](https://github.com/parcel-bundler/parcel/pull/8254)
- Allow plugin configs to be written with `.cjs` extension - [Details](https://github.com/parcel-bundler/parcel/pull/8253)
- JavaScript
- Support react refresh for `@emotion/react` - [Details](https://github.com/parcel-bundler/parcel/pull/8205)
- Inject script for hmr when there is only normal script in html - [Details](https://github.com/parcel-bundler/parcel/pull/8330)
- Elm
- Add support for compiling multiple modules at once via `with` query param - [Details](https://github.com/parcel-bundler/parcel/pull/8076)
- CSS
- Add support for `errorRecovery` option in `@parcel/transformer-css` - [Details](https://github.com/parcel-bundler/parcel/pull/8352)
- Experimental bundler - [Details](https://github.com/parcel-bundler/parcel/pull/8180)
- Implement bundling for multiple targets
- Internalize async dependencies
- Merge bundles of the same type
- Fix missing module - [Details](https://github.com/parcel-bundler/parcel/pull/8303)
### Fixed
- JavaScript
- Default interop missing when importing a CommonJS module - [Details](https://github.com/parcel-bundler/parcel/pull/7991)
- Add missing imports for external dependencies in skipped assets - [Details](https://github.com/parcel-bundler/parcel/pull/8299)
- Bump SWC to fix undefined variables - [Details](https://github.com/parcel-bundler/parcel/pull/8276)
- Remove charset from JS loaded script to avoid double fetching in Firefox - [Details](https://github.com/parcel-bundler/parcel/pull/8346)
- Use placeholder expression when replacing unused symbols - [Details](https://github.com/parcel-bundler/parcel/pull/8358)
- Core
- Fix atomic writestream handling on Windows - [Details](https://github.com/parcel-bundler/parcel/pull/8337)
- Fix non-deterministic bundle hashes between builds due to symbol propagation - [Details](https://github.com/parcel-bundler/parcel/pull/8212)
- Fix TypeScript types for `@parcel/package-manager` - [Details](https://github.com/parcel-bundler/parcel/pull/8293)
- Dependencies
- Bump terser to 5.14.2 - [Details](https://github.com/parcel-bundler/parcel/pull/8322)
- Bump node-forge to 1.3.0 - [Details](https://github.com/parcel-bundler/parcel/pull/8271)
v2.6.2 (2022-06-22)
This release includes bug fixes:
- Core
- Fix race condition between writing and reading from cache - [Details](https://github.com/parcel-bundler/parcel/pull/8235)
v2.6.1 (2022-06-17)
This release includes bug fixes:
- JavaScript
- Fix issue with conditional dependencies based on `process.env` - [Details](https://github.com/parcel-bundler/parcel/pull/8151)
- Fix transformation of import/requires wrapped into `Promise.resolve()` - [Details](https://github.com/parcel-bundler/parcel/pull/8167)
- Fix object literal shorthand with imported variables - [Details](https://github.com/parcel-bundler/parcel/issues/7955)
- Fix imported values in computed optional member expressions - [Details](https://github.com/parcel-bundler/parcel/pull/8187)
- Bump SWC to fix issue with missing parenthesis in optional chaining call - [Details](https://github.com/parcel-bundler/parcel/pull/8200)
- Bump SWC to fix helper imports in Node ESM libraries - [Details](https://github.com/parcel-bundler/parcel/pull/8213)
- Resolution
- Add missing `invalidateOnEnvChange` to resolver - [Details](https://github.com/parcel-bundler/parcel/pull/8103)
- Fix importing node_modules packages in glob resolver with sub-paths - [Details](https://github.com/parcel-bundler/parcel/pull/8169)
- Error when external dependencies in libraries have incompatible semver ranges - [Details](https://github.com/parcel-bundler/parcel/pull/8224)
- Web Extensions
- Fix HMR for web extensions - [Details](https://github.com/parcel-bundler/parcel/pull/8145)
- Fix web extensions issues with Safari - [Details](https://github.com/parcel-bundler/parcel/pull/8175)
- Fix `declarative_net_request` property in web extension manifest - [Details](https://github.com/parcel-bundler/parcel/pull/8189)
- Dev Server
- Fix browser caching issues with dev server - [Details](https://github.com/parcel-bundler/parcel/pull/8166)
- TypeScript
- Fix path separators on Windows - [Details](https://github.com/parcel-bundler/parcel/pull/8149)
- CSS
- Bump Parcel CSS to fix issues with `libc` field in package.json - [Details](https://github.com/parcel-bundler/parcel/pull/8220)
- Core
- Fix atomic file writing race condition - [Details](https://github.com/parcel-bundler/parcel/pull/8194)
- Bump lmdb dependency to fix multi-threading issue - [Details](https://github.com/parcel-bundler/parcel/pull/8204)
v2.6.0 (2022-05-25)
Blog post: https://parceljs.org/blog/v2-6-0/
### Added
- Add React error overlay to display pretty runtime errors like Create React App - [Details](https://github.com/parcel-bundler/parcel/pull/8034)
- Support for source maps in HMR updates - [Details](https://github.com/parcel-bundler/parcel/pull/8034)
- Support for scoping variables in CSS modules - [Details](https://github.com/parcel-bundler/parcel/pull/8122)
- Support for custom CSS modules naming patterns - [Details](https://github.com/parcel-bundler/parcel-css/pull/180)
- Support for node_modules packages in `@parcel/resolver-glob` - [Details](https://github.com/parcel-bundler/parcel/pull/8097)
- Add support for defining `compilerOptions` in Vue config - [Details](https://github.com/parcel-bundler/parcel/pull/8031)
- Add support for Vue 3 `