rolldown / rolldown

Fast Rust bundler for JavaScript/TypeScript with Rollup-compatible API.
https://rolldown.rs
MIT License
8.66k stars 472 forks source link

[Tracking] Rollup Plugin Compat Status #819

Open underfin opened 6 months ago

underfin commented 6 months ago

Plugin Hooks

Fully Supported Hooks

Partually Supported Hooks

Hooks in this section can work as intended for most commonly seen plugins, but they may have some niche options / behavior that are not implemented yet.

Our priority at this stage is implement enough compatibility for most plugins to run, and determine whether to support the niche options at a later stage based on user demand. Some options are explicitly marked as "will not support" due to architectural incompatibility and limited use case.

Not Yet Supported

Plugin Context

Supported Properties

Partially Supported Properties

Not Yet Supported Properties

Vite Internal Plugins Compatibility

Vite Public Plugins Compatibility

Rollup Official Plugins Compatibility

Supported as Built-in

The following Rollup plugins are no longer needed because Rolldown offers built-in support for equivalent features:

Fully Compatible Plugins

Not Yet Compatible

Vite Ecosystem

analog

astro

histoire

mutate NormalizedOption#external(look like is not correct), see here

qwik

qwikCityPlugin used moduleSideEffect: no-treeshake, see here

sapphi-red commented 1 month ago

import.meta.ROLLUP_FILE_URL_* needs to be supported as well: https://stackblitz.com/edit/github-6jajke-dkf5gh?file=rolldown.config.mjs

It seems astro uses it: https://github.com/withastro/astro/blob/1c64ae304d3c008a776e98e48fd3ece8be7b1fb5/packages/db/src/core/integration/file-url.ts#L32