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

Nuxt3集成FullCalendar时出现H3Error: vite_ssr_import_1未定义

解决Nuxt3集成FullCalendar时的vite_ssr_import_1 is not defined错误

这个错误的核心原因是FullCalendar部分模块不支持服务端渲染(SSR),在Nuxt3的SSR流程中加载时出现了导入变量未定义的问题。以下是具体的解决步骤:

1. 封装客户端专属组件

创建一个仅在客户端渲染的FullCalendar组件,避免SSR加载:

<!-- components/FullCalendarClient.vue -->
<template>
  <FullCalendar :options="calendarOptions" />
</template>

<script setup>
import FullCalendar from '@fullcalendar/vue3'
import dayGridPlugin from '@fullcalendar/daygrid'

const calendarOptions = {
  plugins: [dayGridPlugin],
  initialView: 'dayGridMonth'
}
</script>

<style>
@import '@fullcalendar/core/main.css';
@import '@fullcalendar/daygrid/main.css';
</style>

2. 在页面中使用客户端组件

通过<ClientOnly>标签包裹组件,确保仅在浏览器环境中渲染:

<!-- pages/calendar.vue -->
<template>
  <div class="calendar-container">
    <ClientOnly fallback="加载日历中...">
      <FullCalendarClient />
    </ClientOnly>
  </div>
</template>

<script setup>
import FullCalendarClient from '~/components/FullCalendarClient.vue'
</script>

3. 调整Nuxt配置优化构建

在nuxt.config.ts中添加构建配置,确保FullCalendar模块被正确转译和优化:

export default defineNuxtConfig({
  build: {
    transpile: ['@fullcalendar/vue3', '@fullcalendar/core']
  },
  vite: {
    optimizeDeps: {
      include: ['@fullcalendar/vue3', '@fullcalendar/core', '@fullcalendar/daygrid']
    }
  }
})

4. 验证依赖版本兼容性

检查你的package.json,确保FullCalendar相关包版本与Nuxt3兼容:

  • @fullcalendar/vue3 版本需 ≥ 5.11.0
  • Nuxt3 版本需 ≥ 3.0.0

如果以上步骤仍未解决问题,可以尝试临时关闭SSR(仅用于排查):在nuxt.config.ts中设置ssr: false,若此时错误消失,说明问题确实源于SSR与FullCalendar的兼容性,回到上述步骤优化客户端渲染即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 23:35:20