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

Nuxt 3 + TipTap执行nuxt generate报错:StarterKit.configure不是函数

Nuxt 3 + TipTap 2.0.0-beta.209 执行nuxt generate报错:StarterKit.configure is not a function

问题概述

使用 Nuxt 3.0.0 + TipTap 2.0.0-beta.209 创建项目时,nuxt dev 和 SPA 模式运行正常,但执行 nuxt generate 命令会抛出 StarterKit.configure is not a function 错误,错误指向 pages/index.vue 中的编辑器配置代码。

报错信息

ERROR StarterKit.configure is not a function

at setup (/D:/dev/nuxt-tiptap-issue/.nuxt/prerender/chunks/index.ac796611.mjs:56:20)
at _sfc_main.setup (/D:/dev/nuxt-tiptap-issue/.nuxt/prerender/chunks/index.ac796611.mjs:321:23)
at callWithErrorHandling (node_modules@vue\runtime-core\dist\runtime-core.cjs.prod.js:15:22)
at setupStatefulComponent (node_modules@vue\runtime-core\dist\runtime-core.cjs.prod.js:5762:29)
at setupComponent (node_modules@vue\runtime-core\dist\runtime-core.cjs.prod.js:5743:11)
at renderComponentVNode (node_modules@vue\server-renderer\dist\server-renderer.cjs.prod.js:169:17)
at renderVNode (node_modules@vue\server-renderer\dist\server-renderer.cjs.prod.js:296:22)
at renderComponentSubTree (node_modules@vue\server-renderer\dist\server-renderer.cjs.prod.js:260:13)
at renderComponentVNode (node_modules@vue\server-renderer\dist\server-renderer.cjs.prod.js:185:16)
at renderVNode (node_modules@vue\server-renderer\dist\server-renderer.cjs.prod.js:296:22)

出错代码片段

const editor = useEditor({
  extensions: [
    CustomDocument,
    StarterKit.configure({
      document: false,
      heading: {
        levels: [1, 2, 3, 4, 5, 6],
      }
    }),
    // ...其他扩展
  ]
})

已尝试操作

执行 nuxt generate 时出现以下警告:

WARN Using experimental payload extraction for full-static output. You can opt-out by setting experimental.payloadExtraction to false.

已尝试将 experimental.payloadExtraction 设置为 false,但问题未解决。怀疑 StarterKit 导入异常,但无法定位修复。

解决方案

1. 将编辑器标记为客户端仅渲染

TipTap 是前端交互组件,服务端渲染时无需初始化编辑器。可以用 Nuxt 的 <ClientOnly> 组件包裹编辑器:

<template>
  <ClientOnly>
    <!-- 你的 TipTap 编辑器组件 -->
  </ClientOnly>
</template>

或在代码中仅在客户端初始化编辑器:

const editor = process.client ? useEditor({
  extensions: [
    CustomDocument,
    StarterKit.configure({
      document: false,
      heading: { levels: [1,2,3,4,5,6] }
    })
  ]
}) : null

2. 配置 Nuxt 打包时转译 TipTap 依赖

在 nuxt.config.ts 中添加 TipTap 相关包到 build.transpile,确保服务端打包时正确处理 ES 模块:

export default defineNuxtConfig({
  build: {
    transpile: ['@tiptap/core', '@tiptap/starter-kit', '@tiptap/vue-3']
  }
})

3. 降级 TipTap 版本

当前使用的 TipTap 为 beta 版本,可能存在兼容性问题。尝试降级到更稳定的 beta 版本(如 2.0.0-beta.200),重新安装依赖后执行 nuxt generate。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 17:55:18