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

Next.js 14.1.4生产环境构建失败:找不到@路径模块

解决Next.js跨系统构建模块找不到的问题

针对你遇到的Windows本地能正常构建、Ubuntu服务器上却找不到@/components/Layout模块的问题,试试下面这些排查和解决步骤:

1. 优先检查文件名大小写(最常见原因)

Ubuntu是区分文件名大小写的,而Windows不区分。比如你本地组件文件叫layout.tsx(小写开头),但导入写的Layout,Windows能正常识别,Ubuntu会直接找不到。

  • 登录服务器,到项目的src/components目录下执行ls -l,确认组件文件名和导入语句的大小写完全一致(比如是不是Layout.tsx)
  • 如果不一致,要么修改导入语句的大小写匹配文件,要么重命名文件匹配导入写法

2. 确认tsconfig.json的路径配置正确

确保你的tsconfig.json里的paths和baseUrl配置没出错,Next.js才能正确解析@/别名:

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@/*": ["src/*"]
    },
    // 其他配置...
  }
}
  • 检查服务器上的tsconfig.json是否和本地完全一致,有没有被误修改
  • 确认baseUrl设为.,@/*对应src/*,这是Next.js识别别名的标准配置

3. 清理缓存并重新安装依赖

服务器上的依赖缓存或构建缓存可能导致异常,执行以下命令:

# 删除依赖目录和锁文件
rm -rf node_modules
rm package-lock.json

# 重新安装依赖
npm install

# 清理Next.js构建缓存
npx next clean

# 再次尝试构建
npm run build

4. 检查Git提交是否遗漏组件文件

如果你的组件文件没被提交到Git仓库,服务器拉取代码时自然会找不到:

  • 在服务器上执行ls src/components/,确认Layout.tsx(或对应组件文件)存在
  • 本地执行git status,检查该组件是否被.gitignore忽略,或者未提交,及时推送到仓库后重新拉取服务器代码

5. 确保依赖版本一致

本地和服务器的Next.js、TypeScript版本不一致也可能导致解析差异:

  • 本地执行npm list next和npm list typescript,记下版本号
  • 服务器上执行同样命令,确认版本一致;如果不一致,按上述步骤删除依赖和锁文件,重新安装对应版本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 23:14:56