Skip to content

Releases: parcel-bundler/parcel

v2.9.0

26 May 05:59
d529d8a
Compare
Choose a tag to compare

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

    • Switch to SWC minifier instead of Terser by default – Details
    • Split large runtime manifest into separate bundles to reduce cache invalidations – Details
    • Respect addExternalDependency in Babel plugins – Details
  • Bundler

    • Use BitSet for bundler intersections for improved performance – Details
  • Web Extensions

    • Add support for chrome_style field – Details

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 and xmldom 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

    • Fix missing edge error when using for multiple targets – Details
    • Fix non-deterministic builds between project directories – Details
    • Fix css-module related build error in bundling – Details
    • Fix multiple entries pointing to wrong bundle in dist – Details
  • Dev server

    • Don't error during HMR on <link> elements without hrefs – Details
    • Improve server index file matching – Details
    • Don't send HMR updates before packaging in watch mode – Details
  • Elm

    • Fix error when formatting build errors – Details

v2.8.3

18 Jan 16:41
Compare
Choose a tag to compare
  • Core
    • filter out title execArgv to workers – Details
  • Bundler
    • Fix CSS order when merging type change bundles – Details
    • Fix assertion error when mixing CSS modules and non-modules – Details
    • Fix set diff – Details
    • Recursively check reachability when removing asset graphs from bundles in deduplication – Details
  • JavaScript
    • Don't retarget dependencies if a symbol is imported multiple times with different local names – Details
    • Fix assigning to this in CommonJS – Details
    • Bump SWC to fix dead branch removal bug – Details
    • Bump swc to fix sourcemaps with Windows line endings – Details
    • Add test cases for ESM initialization problems – Details
  • TypeScript
    • Fix TSC sourcemaps metadata – Details
  • HTML
    • Fix srcset parsing – Details
  • Dev server
    • Apply HMR updates in topological order – Details
    • Fixed the hmr connection with host 0.0.0.0 – Details

v2.8.2

14 Dec 22:56
Compare
Choose a tag to compare

Fixed

  • Core
    • Ensure maxListeners for process.stdout accounts for workers – Details
  • JavaScript
    • Bump SWC to fix scoping issue with block-less loops – Details
    • Fix requires of external CommonJS SWC helpers – Details

v2.8.1

08 Dec 04:41
Compare
Choose a tag to compare

Fixed

  • Core
    • fix: remove @parcel/utils dep in @parcel/graph – Details
  • JavaScript
    • Don't retarget dependencies with * – Details
    • Fix overriding single export of a export * – Details
    • Add mjs and cjs to resolver extensions – Details
  • TypeScript
    • Make ts-types transformer work with TS >= 4.8 – Details
  • Web manifest
    • Parse shortcut icons in web app manifests – Details
  • SVG
    • Fix transformer-svg-react not finding .svgrrc – Details

v2.8.0

09 Nov 05:13
Compare
Choose a tag to compare

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

Added

  • Core
    • Code splitting across reexports using symbol data by splitting dependencies – Details
    • Update without bundling for non-dependency related changes – Details
    • Improve performance of incremental bundling – Details
    • Only serialize and send shared references to workers that need them – Details
    • Improve performance of HMR by not waiting for packaging – Details
  • JavaScript
    • Verify version when resolving Node builtin polyfills – Details
    • Add loadBundleConfig method to Packager plugins – Details
  • SVG
    • Generate typescript for SVGs when using svgr and typescript option – Details
  • Bundler
    • Move experimental bundler to default – Details

Fixed

  • Core
    • Fix verbose warning: reexport all doesn't include default – Details
    • Support multiple edge types in Graph.hasEdge – Details
    • Ensure edge exists before removal in Graph.removeEdge – Details
    • Disable splitting dependencies on symbols for non-scope hoisted bundles – Details
    • Fix TypeScript definitions for Parcel config API – Details
    • Use traverseAssets in packager to improve performance – Details
    • Make uniqueKey undefined by default – Details
    • Catch uncaught promise build abort race – Details
    • Bump parcel dependencies – Details
  • JavaScript
    • Bump SWC - Details, Details
    • Fix Chrome Android browserslist support check – Details
    • Fix CommonJS symbol collection without scope hoisting – Details
    • Make React Refresh debounce call on the leading edge – Details
    • Retain correct dependency order between imports and reexports without scopehoisting – Details
  • Bundler
    • Consider sibling in available assets to younger sibling for parallel deps – Details
    • Don't merge isolated child assets – Details
    • Do not merge isolated bundles in experimental bundler – Details
    • Implement min bundles configuration – Details
  • Dev server
    • Include Content-Length header in HEAD requests – Details
  • Vue
    • Fix errors displaying errors when compiling Vue SFCs – Details
    • Add file path to error code frames – Details
    • Fix location of errors – Details
  • Image
  • TypeScript
    • Allow configuring module resolution – Details
  • Web extensions
    • Fix service worker packaging in web extensions – Details

v2.7.0

03 Aug 15:23
Compare
Choose a tag to compare

Added

  • Core
    • Log resolved targets in verbose log level for debugging - Details
    • Allow plugin configs to be written with .cjs extension - Details
  • JavaScript
    • Support react refresh for @emotion/react - Details
    • Inject script for hmr when there is only normal script in html - Details
  • Elm
    • Add support for compiling multiple modules at once via with query param - Details
  • CSS
    • Add support for errorRecovery option in @parcel/transformer-css - Details
  • Experimental bundler - Details
    • Implement bundling for multiple targets
    • Internalize async dependencies
    • Merge bundles of the same type
    • Fix missing module - Details

Fixed

  • JavaScript
    • Default interop missing when importing a CommonJS module - Details
    • Add missing imports for external dependencies in skipped assets - Details
    • Bump SWC to fix undefined variables - Details
    • Remove charset from JS loaded script to avoid double fetching in Firefox - Details
    • Use placeholder expression when replacing unused symbols - Details
  • Core
    • Fix atomic writestream handling on Windows - Details
    • Fix non-deterministic bundle hashes between builds due to symbol propagation - Details
    • Fix TypeScript types for @parcel/package-manager - Details
  • Dependencies

v2.6.2

22 Jun 04:54
Compare
Choose a tag to compare

This release includes bug fixes:

  • Core
    • Fix race condition between writing and reading from cache - Details

v2.6.1

17 Jun 19:36
Compare
Choose a tag to compare

This release includes bug fixes:

  • JavaScript
    • Fix issue with conditional dependencies based on process.env - Details
    • Fix transformation of import/requires wrapped into Promise.resolve() - Details
    • Fix object literal shorthand with imported variables - Details
    • Fix imported values in computed optional member expressions - Details
    • Bump SWC to fix issue with missing parenthesis in optional chaining call - Details
    • Bump SWC to fix helper imports in Node ESM libraries - Details
  • Resolution
    • Add missing invalidateOnEnvChange to resolver - Details
    • Fix importing node_modules packages in glob resolver with sub-paths - Details
    • Error when external dependencies in libraries have incompatible semver ranges - Details
  • Web Extensions
    • Fix HMR for web extensions - Details
    • Fix web extensions issues with Safari - Details
    • Fix declarative_net_request property in web extension manifest - Details
  • Dev Server
    • Fix browser caching issues with dev server - Details
  • TypeScript
    • Fix path separators on Windows - Details
  • CSS
    • Bump Parcel CSS to fix issues with libc field in package.json - Details
  • Core
    • Fix atomic file writing race condition - Details
    • Bump lmdb dependency to fix multi-threading issue - Details

v2.6.0

25 May 13:42
Compare
Choose a tag to compare

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

Added

  • Add React error overlay to display pretty runtime errors like Create React App - Details
  • Support for source maps in HMR updates - Details
  • Support for scoping variables in CSS modules - Details
  • Support for custom CSS modules naming patterns - Details
  • Support for node_modules packages in @parcel/resolver-glob - Details
  • Add support for defining compilerOptions in Vue config - Details
  • Add support for Vue 3 <script setup> - Details
  • Add support for gif, tiff, avif, heic, and heif images in @parcel/transformer-image - Details
  • Add support for animated images (i.e. gifs, webp, etc.) in @parcel/transformer-image - Details
  • Support for missing fields in web extensions manifest v3 - Details, Details
  • Improve elm compiler error output - Details
  • Support for useDefineForClassFields option in tsconfig.json - Details
  • Add --hmr-host CLI option to set HMR host independently from dev server - Details

Fixed

  • Update lmdb-js. Fixes Node 18 support - Details, Details
  • Update napi-rs to v2 - Details
  • Fix SWC targets for older browsers - Details
  • Add SWC error handler to fix panic during transpilation - Details
  • Update SWC. Fixes issue with Symbol.toStringTag - Details
  • Bump SWC to fix spreads of imported symbols - Details
  • Correctly emit warnings for unnecessary PostCSS plugins in package.json - Details
  • Fix typo in error message - Details
  • Remove duplicate values in graph APIs when getting connected node ids - Details
  • Fix Pug support in Vue files - Details
  • Fix export declare syntax in generated TypeScript definitions - Details
  • Preserve correct this for named/default imports - Details
  • Fix hoisting for optional chaining member expressions - Details
  • Fix issues with web extensions - Details
  • Reload the closest package.json to an asset if it's a package entry to fix sideEffects - Details
  • Only emit non static import bailout warnings for variables which correspond to a * import - Details

v2.5.0

21 Apr 14:28
Compare
Choose a tag to compare

This release includes new features, including improved Web Extension support and better output for Node.js targets, as well as upgrades to SWC and Parcel CSS, and many bug fixes. Thanks to everyone who contributed!

Added

  • Add support for Web Extension manifest v3 - Details
  • Rewrite __dirname and __filename to refer to the original path when building for Node.js targets - Details
  • Generate codeframe positions for JSON5 - Details
  • Add $schema support in web extension manifest - Details
  • Add support for in expressions with process.env, e.g. 'foo' in process.env - Details

Fixed

  • Updated SWC. - Details + Details
  • Update Parcel CSS to v1.8.1 - Details + Details
  • Fix diagnostic message - Details
  • Disable react refresh for library targets. Fixes "Asset was skipped or not found" error. - Details
  • Don't process inline <style> elements as CSS modules - Details
  • Fix issue with multiple images in srcset attribute - Details
  • Fix peer dependencies - Details + Details
  • Scope hoisting: Fix wrapping when any ancestor asset is wrapped - Details
  • Scope hoisting: Don't insert unused requires that aren't registered anywhere - Details
  • Scope hoisting: Fix wrapped assets importing their own namespace - Details
  • Fix issues with resolving symbols - Details
  • Fix loading .env files when entries are specified using "source" field in package.json - Details
  • Correctly remove orphaned non-tree subgraphs - Details