Skip to content

[Bug] type error in @rolldown/plugin-babel's presets plugin option when @types/babel__core is not installed #28

@AlexanderHott

Description

@AlexanderHott

Related plugins

Describe the bug

Based off of the https://github.com/vitejs/vite-plugin-react/tree/main/packages/plugin-react#readme docs, I can just set

// vite.config.js
import { defineConfig } from 'vite'
import react, { reactCompilerPreset } from '@vitejs/plugin-react'
import babel from '@rolldown/plugin-babel'

export default defineConfig({
  plugins: [react(), babel({ presets: [reactCompilerPreset()] })],
})

to enable the react compiler, but that causes the following type error

Argument of type { presets: RolldownBabelPreset[]; } is not assignable to parameter of type PluginOptions. Type { presets: RolldownBabelPreset[]; } is missing the following properties from type PluginOptions: plugins, assumptions, auxiliaryCommentAfter, auxiliaryCommentBefore, and 9 more.


It seems like the ?s got stripped from the babel plugin options type. They exist in the babel source

https://github.com/babel/babel/blob/main/packages/babel-core/src/config/validation/options.ts#L153-L207

but seem to have disappeared through some layer of typescript type magic. The type error goes away if I set all the "required" fields to undefined, but then my build doesn't succeed.

Reproduction

https://stackblitz.com/edit/vitejs-vite-59ev4z5v?file=vite.config.ts

Steps to reproduce

npm run typecheck or look at the vite.config.ts file.

System Info

System:
    OS: Linux 6.17 Ubuntu 25.10 25.10 (Questing Quokka)
    CPU: (16) x64 AMD Ryzen 7 7840U w/ Radeon  780M Graphics
    Memory: 42.26 GB / 60.63 GB
    Container: Yes
    Shell: 5.2.37 - /bin/bash
  Binaries:
    Node: 22.14.0 - /run/user/1000/fnm_multishells/409046_1773711162044/bin/node
    npm: 10.9.2 - /run/user/1000/fnm_multishells/409046_1773711162044/bin/npm
    pnpm: 10.18.2 - /home/ott/.local/share/pnpm/pnpm
    bun: 1.3.10 - /home/ott/.bun/bin/bun
    Watchman: 4.9.0 - /usr/bin/watchman
  Browsers:
    Firefox: 148.0.2
    Firefox Developer Edition: 148.0.2
    Helium 0.10.4.1 (Chromium 146.0.7680.75)
  npmPackages:
    @rolldown/plugin-babel: ^0.2.1 => 0.2.1
    @vitejs/plugin-react: ^6.0.1 => 6.0.1
    vite: ^8.0.0 => 8.0.0

Used Package Manager

bun

Validations

Metadata

Metadata

Assignees

No one assigned

    Type

    Priority

    None yet

    Effort

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions