package.json declares rollup and rolldown as optional peer deps, but dist/plugin/index.d.ts hard-imports Plugin and OutputOptions from "rollup" (and dist/plugin/{sourcemap,data}.d.ts do the same with OutputChunk and GetModuleInfo). In a rolldown-only project this forces TypeScript to fail.
The runtime is fine (rolldown is API-compatible). It's purely a type-resolution failure that forces consumers to install rollup (~1 MB plus a multi-MB native binary) just to satisfy TypeScript.
Reproduction
npm i -D rolldown rollup-plugin-visualizer
// rolldown.config.ts
import {defineConfig} from 'rolldown';
import {visualizer} from 'rollup-plugin-visualizer';
export default defineConfig({
input: 'src/index.ts',
output: {dir: 'dist'},
plugins: [visualizer()],
});
$ tsc --noEmit
node_modules/rollup-plugin-visualizer/dist/plugin/index.d.ts(1,39):
error TS2307: Cannot find module 'rollup' or its corresponding type declarations.
Environment
rollup-plugin-visualizer 7.0.1
- TypeScript 6.0.3 (also reproduces on stock 5.x)
rolldown 1.0.0-rc.18
package.jsondeclaresrollupandrolldownas optional peer deps, butdist/plugin/index.d.tshard-importsPluginandOutputOptionsfrom"rollup"(anddist/plugin/{sourcemap,data}.d.tsdo the same withOutputChunkandGetModuleInfo). In a rolldown-only project this forces TypeScript to fail.The runtime is fine (rolldown is API-compatible). It's purely a type-resolution failure that forces consumers to install
rollup(~1 MB plus a multi-MB native binary) just to satisfy TypeScript.Reproduction
Environment
rollup-plugin-visualizer7.0.1rolldown1.0.0-rc.18