diff --git a/src/build/rollup/dev.ts b/src/build/rollup/dev.ts index 20f1fb5eb3..85315c4e31 100644 --- a/src/build/rollup/dev.ts +++ b/src/build/rollup/dev.ts @@ -1,5 +1,5 @@ import type { Nitro, RollupConfig } from "nitro/types"; -import type { RollupWatcher } from "rollup"; +import type { RollupOptions, RollupWatcher } from "rollup"; import { watch as chokidarWatch } from "chokidar"; import { defu } from "defu"; import { basename, join } from "pathe"; @@ -68,7 +68,7 @@ export async function watchDev(nitro: Nitro, rollupConfig: RollupConfig) { function startRollupWatcher(nitro: Nitro, rollupConfig: RollupConfig) { const watcher = rollup.watch( - defu(rollupConfig, { + defu(rollupConfig as RollupOptions, { watch: { chokidar: nitro.options.watchOptions, }, diff --git a/src/build/rollup/prod.ts b/src/build/rollup/prod.ts index defbceeb50..9efa7e1556 100644 --- a/src/build/rollup/prod.ts +++ b/src/build/rollup/prod.ts @@ -5,7 +5,7 @@ import { generateFSTree } from "../../utils/fs-tree.ts"; import { writeTypes } from "../types.ts"; import { writeBuildInfo } from "../info.ts"; import { formatRollupError } from "./error.ts"; -import type { RollupOutput } from "rollup"; +import type { RollupOptions, RollupOutput } from "rollup"; export async function buildProduction(nitro: Nitro, rollupConfig: RollupConfig) { const rollup = await import("rollup"); @@ -20,7 +20,7 @@ export async function buildProduction(nitro: Nitro, rollupConfig: RollupConfig) nitro.logger.info( `Building server (builder: \`rollup\`, preset: \`${nitro.options.preset}\`, compatibility date: \`${formatCompatibilityDate(nitro.options.compatibilityDate)}\`)` ); - const build = await rollup.rollup(rollupConfig).catch((error) => { + const build = await rollup.rollup(rollupConfig as RollupOptions).catch((error) => { nitro.logger.error(formatRollupError(error)); throw error; }); diff --git a/src/types/build.ts b/src/types/build.ts index 1efc10b414..c97a073838 100644 --- a/src/types/build.ts +++ b/src/types/build.ts @@ -10,8 +10,13 @@ import type { TransformOptions as RolldownTransformOptions, } from "rolldown"; -export type RollupConfig = RollupInputOptions & { +export type RollupConfig = Omit & { output?: RollupOutputOptions; + // Vite 8 / `@vitejs/plugin-vue` etc. return Rolldown-typed plugins now that + // Vite's `Plugin` extends `Rolldown.Plugin` instead of Rollup's own type. + // `rollupConfig` is also reused for the `rolldown` builder (see + // `build/vite/bundler.ts`), so accept either shape here. + plugins?: RollupInputOptions["plugins"] | RolldownInputOptions["plugins"]; }; export type RolldownConfig = RolldownInputOptions & {