You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加Nitro Rollup配置导致Nuxt应用常规构建流程异常

解决Nuxt中自定义Rollup配置不干扰默认构建的问题

问题出在你直接替换了Nitro的rollupConfig,这会覆盖框架默认的Rollup构建配置,导致原本生成到.output目录的常规输出被中断。以下是两种可靠的解决方法:

方法一:扩展而非替换Nitro的Rollup配置

通过将rollupConfig设为函数,接收默认配置作为参数,在保留原有配置的基础上添加自定义规则:

// nuxt.config.ts
export default defineNuxtConfig({
  nitro: {
    rollupConfig: (defaultConfig) => {
      return {
        // 继承默认的Rollup配置
        ...defaultConfig,
        // 合并默认入口与自定义入口
        input: {
          ...(defaultConfig.input || {}),
          app: './server/app.ts',
          process1: './server/process1.ts',
          process2: './server/process2.ts'
        },
        // 继承默认输出配置,仅修改需要自定义的项
        output: {
          ...defaultConfig.output,
          inlineDynamicImports: false,
          dir: "lib",
          format: "module",
          entryFileNames: "[name].js"
        }
      }
    }
  }
})

注意:此方法会将默认Nitro输出也指向lib目录,如果需要分开输出,可配置Rollup的多输出规则(在output中传入数组)。

方法二:添加独立的自定义构建任务(推荐)

利用Nuxt的构建钩子,在Nitro默认构建完成后,单独执行自定义的Rollup编译,完全不干扰原有流程:

  1. 先安装所需依赖(如果未安装):
npm install rollup @rollup/plugin-typescript --save-dev
  1. 修改nuxt.config.ts:
// nuxt.config.ts
import { defineNuxtConfig } from 'nuxt/config'
import rollup from 'rollup'
import typescript from '@rollup/plugin-typescript'

export default defineNuxtConfig({
  // 你的其他Nuxt配置
  hooks: {
    // 在Nitro构建完成后执行自定义编译
    async 'nitro:build:done'() {
      const bundle = await rollup.rollup({
        input: {
          app: './server/app.ts',
          process1: './server/process1.ts',
          process2: './server/process2.ts'
        },
        plugins: [typescript()]
      })

      await bundle.write({
        inlineDynamicImports: false,
        dir: 'lib',
        format: 'module',
        entryFileNames: '[name].js'
      })
    }
  }
})

这种方式下,Nitro会正常生成.output目录的常规文件,同时额外将指定的.ts文件编译到lib目录,完全隔离两个构建流程。

内容的提问来源于stack exchange,提问作者Khaelem Watt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 14:25:13