🚀 parcel-bundler/parcel - Release Notes

v2.14.4 (2025-03-29)

### 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)

v2.14.1 (2025-03-19)

### Fixed

- Resolver
  - Fix resolving package self references – [Details](https://github.com/parcel-bundler/parcel/pull/10114)

v2.14.0 (2025-03-18)

Blog post: https://parceljs.org/blog/v2-14-0/

### Added

- Core
  - Add a CLI to create new Parcel apps – [Details](https://github.com/parcel-bundler/parcel/pull/10069)

- JavaScript
  - React Server Components – [Details](https://github.com/parcel-bundler/parcel/pull/10043), [Details](https://github.com/parcel-bundler/parcel/pull/10067), [Details](https://github.com/parcel-bundler/parcel/pull/10074), [Details](https://github.com/parcel-bundler/parcel/pull/10093), [Details](https://github.com/parcel-bundler/parcel/pull/10104)
  - Add RSC-based static site generator – [Details](https://github.com/parcel-bundler/parcel/pull/10057)
  - First-class MDX support – [Details](https://github.com/parcel-bundler/parcel/pull/10064)
  - Merge React Refresh runtime and transformer – [Details](https://github.com/parcel-bundler/parcel/pull/10056)
  - Modernize React error overlay – [Details](https://github.com/parcel-bundler/parcel/pull/10082)
  - Support bundling node native modules – [Details](https://github.com/parcel-bundler/parcel/pull/10066)
  - Use import maps for bundle manifest – [Details](https://github.com/parcel-bundler/parcel/pull/10073)

- Dev Server
  - Support running node bundles in dev server – [Details](https://github.com/parcel-bundler/parcel/pull/10055)
  - Apply HMR updates via node worker thread – [Details](https://github.com/parcel-bundler/parcel/pull/10071)

### Fixed

- Core
  - Fix dev dep request missing 'invalidateOnCreate' – [Details](https://github.com/parcel-bundler/parcel/commit/d6a4df3700bc2364eca18c25c42aa5f220c4b8db)
  - Add napi-wasm as optional peer dependency in @parcel/rust – [Details](https://github.com/parcel-bundler/parcel/pull/10101)

v2.13.3 (2024-12-16)

### Fixed

- Resolver
  - Ignore invalid package.json fields – [Details](https://github.com/parcel-bundler/parcel/pull/10053)

v2.13.2 (2024-11-25)

### 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 `