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

Next.js 13项目能否同时使用/app与/pages目录开发新模块?

Next.js 13混合路由与JS项目引入TS的解决方案

一、/app与/pages目录共存无路由冲突的实现

Next.js 13官方支持/app(App Router)和/pages(Pages Router)目录在同一项目中共存,用于渐进式迁移或新增模块,只要做好路由路径规划就不会冲突:

  • 路由优先级规则:/app目录下的路由会优先匹配,因此新增的/pages模块需要确保路由路径未在/app中使用。比如/app/about已存在,就不要在/pages中创建/pages/about,避免被覆盖。
  • 新增模块步骤:直接在项目根目录创建/pages文件夹,按照传统Pages Router的规则编写组件。例如/pages/new-feature/index.js会对应路由/new-feature,只要该路径未被/app下的路由占用,就能正常访问。
  • 兼容性注意:如果需要在两个路由系统间共享组件,避免在共享组件中使用App Router独有的特性(如Server Components、use client指令之外的客户端限制等),确保组件能在Pages Router中正常运行。

二、JavaScript项目中引入TypeScript开发新模块

Next.js原生支持JS与TS混合开发,无需全项目迁移,可直接为新模块使用TypeScript:

  • 初始化TS配置:在项目根目录执行npx tsc --init生成tsconfig.json,核心设置可参考"jsx": "preserve"、"module": "ESNext"、"target": "ES5"这类Next.js适配项。
  • 安装依赖:执行npm install --save-dev typescript @types/react @types/node安装TS及对应类型声明包。
  • 编写TS模块:直接在/pages或/app目录下创建.ts或.tsx文件编写新模块,Next.js会自动识别并编译,无需额外配置。
  • 现有JS文件兼容:原有JavaScript代码无需修改,Next.js会同时处理JS和TS文件,两者可以互相导入使用(可逐步为JS文件添加.d.ts类型声明,但非强制要求)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 02:22:46