tsconfig.json tsconfig.app.json tsconfig.node.json 有什么区别


在 TypeScript 项目中,tsconfig.jsontsconfig.app.jsontsconfig.node.json通常用于不同场景的配置分离,它们的主要区别如下:

1. tsconfig.json

  • 作用:项目的根配置文件,是整个项目的基础配置或默认配置
  • 特点
    • 通常作为所有子配置的 "父配置",通过extends被其他配置继承
    • 可以定义项目通用的编译选项(如严格模式、类型检查规则等)
    • 当执行tsc命令时,默认会读取此文件
  • 典型用途
    • 存放所有环境共享的基础配置
    • 定义项目整体的包含 / 排除规则(如include: ["src/**/*"]

 

json
 
 
 
 
 
{
  "compilerOptions": {
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true
  }
}
 

2. tsconfig.app.json

  • 作用:专门用于应用程序代码(前端业务逻辑)的配置
  • 目标环境:浏览器环境
  • 特点
    • 通常会继承tsconfig.json的基础配置
    • 包含浏览器相关的编译选项(如lib: ["DOM", "ESNext"]
    • 可能启用 JSX 支持(如 React 项目的jsx: "react-jsx"
    • 仅包含应用源代码目录(如src/
  • 典型用途
    • 配置前端页面、组件、业务逻辑等代码的编译规则

 

json
 
 
 
 
 
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "target": "ESNext",
    "lib": ["DOM", "DOM.Iterable", "ESNext"],
    "module": "ESNext",
    "jsx": "react-jsx"
  },
  "include": ["src"]
}
 

3. tsconfig.node.json

  • 作用:专门用于Node.js 环境代码的配置
  • 目标环境:Node.js 运行时(如后端代码、工具脚本、配置文件)
  • 特点
    • 同样继承tsconfig.json的基础配置
    • 包含 Node.js 相关的编译选项(如引用@types/node类型)
    • 模块系统通常适配 Node.js(如module: "CommonJS"NodeNext
    • 包含工具脚本或配置文件(如vite.config.tsscripts/
  • 典型用途
    • 配置项目构建脚本、后端服务、Node.js 工具等代码的编译规则

 

json
 
 
 
 
 
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "target": "ES2020",
    "lib": ["ESNext"],
    "module": "NodeNext",
    "types": ["node"]
  },
  "include": ["vite.config.ts", "scripts/**/*"]
}
 

核心区别总结

维度 tsconfig.json tsconfig.app.json tsconfig.node.json
角色 根配置(基础 / 共享) 前端应用代码配置 Node.js 环境代码配置
目标环境 通用基础配置 浏览器 Node.js 运行时
继承关系 被其他配置继承 继承 tsconfig.json 继承 tsconfig.json
典型包含内容 全项目通用规则 src/(业务代码) 配置文件、工具脚本
特殊配置 无环境特定配置 DOM 库、JSX 支持 Node 类型、Node 模块系统

 

这种多配置文件的设计,常见于 Vite、Create React App 等现代前端工程化项目中,通过分离配置让不同环境的代码获得更精准的编译规则,避免相互干扰。
发布时间 : 2025-09-10,阅读量:4 , 分类: Vue
本文链接:https://upwqy.com/details/1006.html
在vue3+vite使用useRouter的两种方式