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

Next.js构建时出现ReferenceError: document未定义问题求助

Next.js构建时出现"document is not defined"错误排查求助

执行npm run build时遇到以下错误:

ReferenceError: document is not defined
    at createTag (/Users/nuris/WebstormProjects/my-career-portfolio/.next/server/app/page.js:1:694431)

我清楚服务器端渲染(SSR)期间document对象不可用,但通过WebStorm全局搜索代码库,未找到任何直接引用document的代码,问题出在首页预渲染阶段。

我的page.js文件内容如下:

import AboutSection from "./components/homepage/about";
import ContactSection from "./components/homepage/contact";
import Education from "./components/homepage/education"; // Updated
import Experience from "./components/homepage/experience"; // Updated
import HeroSection from "./components/homepage/hero-section";
import Projects from "./components/homepage/projects";
import Skills from "./components/homepage/skills";

export default function Home() {
    return (
        <div className="space-y-20">
            <section id="hero" className="w-full max-w-[1200px] mx-auto px-4 sm:px-8">
                <HeroSection />
            </section>
            <section id="about" className="w-full max-w-[1200px] mx-auto px-4 sm:px-8">
                <AboutSection />
            </section>
            <section id="experience" className="w-full max-w-[1200px] mx-auto px-4 sm:px-8">
                <Experience />
            </section>
            <section id="skills" className="w-full max-w-[1200px] mx-auto px-4 sm:px-8">
                <Skills />
            </section>
            <section id="projects" className="w-full max-w-[1200px] mx-auto px-4 sm:px-8">
                <Projects />
            </section>
            <section id="education" className="w-full max-w-[1200px] mx-auto px-4 sm:px-8">
                <Education />
            </section>
            <section id="contact" className="w-full max-w-[1200px] mx-auto px-4 sm:px-8">
                <ContactSection />
            </section>
        </div>
    );
}

已尝试的操作:

  • 使用WebStorm全局搜索未找到document引用;
  • 确保依赖window的组件(如Navbar)添加了'use client'指令。

环境信息:

  • Next.js: 14.2.15
  • Node.js: 18.x
  • React: 18.x
  • 构建命令: npm run build

我使用了一个模板仓库,但该模板本身构建时也会出现相同错误。

求助问题:

  • 无直接引用时如何定位document未定义的根因?
  • 是否由依赖导致,如何排查具体依赖?
  • Next.js中调试此类SSR问题的最佳方法是什么?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 02:13:22