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
相关产品推荐
相关产品推荐

