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

Next.js路由组中Import别名无法使用问题求助

Next.js 14.2.3 @路径导入模块找不到问题解决

在使用路由组和嵌套布局文件时,所有使用“@”的导入均抛出module-not-found错误,改用相对路径可正常工作,但希望保留@路径别名。

配置文件(jsconfig.json)

{
  "compilerOptions": {
    "baseUrl": "./src",
    "paths": {
      "@/*": ["*"],
      "@components/*": ["components/*"],
      "@lib/*": ["lib/*"],
      "@app/*": ["app/*"]
    }
  }
}

报错信息

⨯ ./src/app/(main)/dashboard/page.js:9:1
Module not found: Can't resolve '@lib/schemas/subscriptionSchema'
   7 | import NotAccepted from "./notAccepted";
   8 |
>  9 | import Subscription from "@lib/schemas/subscriptionSchema";
     | ^
  10 | import Users from "@/lib/schemas/userSchema";
  11 | import Events from "@/lib/schemas/eventSchema";
  12 | import Stripe from "stripe";

文件夹结构

项目根目录
├── src/
│   ├── app/
│   │   └── (main)/
│   │       └── dashboard/
│   │           ├── page.js
│   │           └── notAccepted.js
│   ├── components/
│   └── lib/
│       └── schemas/
│           ├── subscriptionSchema.js
│           ├── userSchema.js
│           └── eventSchema.js
└── jsconfig.json

解决步骤

  • 确认jsconfig.json位置:必须放在项目根目录(与src文件夹同级),若放在src内则配置不会被Next.js识别。
  • 统一路径别名格式:当前配置中@lib/*与@/*存在映射冲突,建议保留基础映射@/*即可,简化配置:
    {
      "compilerOptions": {
        "baseUrl": "./src",
        "paths": {
          "@/*": ["*"]
        }
      }
    }
    
    导入时统一使用@/lib/schemas/subscriptionSchema格式,避免因别名规则冲突导致解析失败。
  • 重启开发服务器:Next.js不会热加载jsconfig.json的修改,必须停止当前服务后重新启动npm run dev或yarn dev。
  • 检查文件名大小写:确保导入语句中的文件名与实际文件大小写完全一致(比如subscriptionSchema.js不要写成SubscriptionSchema.js),部分系统对文件名大小写敏感会导致模块找不到。
  • 验证路径映射:在VS Code中尝试通过导入语句跳转至目标文件,若能正常跳转则说明配置生效;若无法跳转,需重新检查baseUrl和paths的配置是否正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 06:45:10