当前位置: 首页 > news >正文

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

通过pnpm i vite 生成vue3项目时,会生成三个ts配置文件,分别是什么作用呢?

在Vue 3项目中,tsconfig.jsontsconfig.node.jsontsconfig.app.json是三个不同的TypeScript配置文件,它们分别用于不同的场景和目的。其中tsconfig.node.json是专门用来配置vite.config.ts文件的编译规则,tsconfig.app.json则是用来定义项目中其他文件的ts编译规则。后面两个文件最终会被引入到tsconfig.json中

tsconfig.json主要配置文件 基础共享配置

tsconfig.json是Vue 3项目的默认TypeScript配置文件。它包含了项目的全局配置,如编译选项、模块解析规则、类型检查规则等。这个配置文件适用于整个项目,包括Vue组件、JavaScript文件和其他TypeScript文件。

/* 文件作用共享基础配置: 通过引用子配置文件,tsconfig.json 提供了一个统一的入口,避免重复配置。分离环境配置: 将前端代码和 Node.js 环境的配置分开,便于针对性优化和管理。支持增量编译: 使用 references 可以启用 TypeScript 的增量编译功能,提高大型项目的编译性能。
*/
{// 用于显式指定需要包含在 TypeScript 编译中的文件。"files": [],// 项目引用(Project References)的配置,用于支持多配置文件的项目结构。// 通过这种方式,tsconfig.json 作为主配置文件,统一管理了子配置文件的依赖关系。"references": [// 用于配置前端代码(如 Vue 组件)的 TypeScript 编译规则。{ "path": "./tsconfig.app.json" },// 用于配置 Node.js 环境(如 vite.config.ts)的 TypeScript 编译规则{ "path": "./tsconfig.node.json" }]
}

tsconfig.node.json 检查 vite.config.ts 等构建配置文件

tsconfig.node.json是专门用于Node.js环境的TypeScript配置文件。它包含了Node.js特有的配置,如模块解析规则、类型检查规则等。这个配置文件通常用于处理Node.js模块,如node_modules中的第三方库。

{"compilerOptions": {// 指定TypeScript编译器生成的tsbuildinfo文件的路径"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",/* target用于指定编译之后的版本目标: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'.  */"target": "ES2022",// 指定要包含在编译中的库文件,这里包含ES2023"lib": ["ES2023"],/* 用来指定要使用的模块标准: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */"module": "ESNext",// 跳过对库文件的类型检查 提高编译速度"skipLibCheck": true,/* Bundler mode  设置模块解析策略*/// 使用bundler模式进行模块解析 表示使用捆绑工具(如 Vite 或 Webpack)的模块解析方式,而不是传统的 Node.js 模块解析方式"moduleResolution": "bundler",// 允许导入带有.ts扩展名的文件"allowImportingTsExtensions": true,// 强制将每个文件视为单独的模块"isolatedModules": true,// 强制进行模块检测"moduleDetection": "force",// 不生成输出文件"noEmit": true,/* Linting *//* strict的值为true或false,用于指定是否启动所有类型检查,如果设为true则会同时开启下面这几个严格类型检查,默认为false */"strict": true,/* 用于检查是否有定义了但是没有使用的变量,对于这一点的检测,使用eslint可以在你书写代码的时候做提示,你可以配合使用。它的默认值为false */"noUnusedLocals": true,/* 用于检查是否有在函数体中没有使用的参数,这个也可以配合eslint来做检查,默认为false */"noUnusedParameters": true,/* 用于检查switch中是否有case没有使用break跳出switch,默认为false */"noFallthroughCasesInSwitch": true,// 禁止未检查的副作用导入// 如果你导入了一个模块但没有使用其导出的内容,TypeScript 会提示你检查该导入是否必要。// 这有助于避免不必要的导入,减少潜在的副作用,提高代码的可维护性和安全性。"noUncheckedSideEffectImports": true},// 指定要包含在编译中的文件,这里包含vite.config.ts"include": ["vite.config.ts"]
}

tsconfig.app.json 检查 src/ 目录下的前端代码

tsconfig.app.json是专门用于Vue组件的TypeScript配置文件。它包含了Vue组件特有的配置,如模块解析规则、类型检查规则等。这个配置文件通常用于处理Vue组件文件,如.vue文件。

{// 继承自 @vue 的 tsconfig.dom.json 配置文件,用于配置 TypeScript 编译选项"extends": "@vue/tsconfig/tsconfig.dom.json", "compilerOptions": {// 指定 TypeScript 编译信息的存储文件路径"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", /* Linting *//* strict的值为true或false,用于指定是否启动所有类型检查,如果设为true则会同时开启下面这几个严格类型检查,默认为false */"strict": true,/* 用于检查是否有定义了但是没有使用的变量,对于这一点的检测,使用eslint可以在你书写代码的时候做提示,你可以配合使用。它的默认值为false */"noUnusedLocals": true,/* 用于检查是否有在函数体中没有使用的参数,这个也可以配合eslint来做检查,默认为false */"noUnusedParameters": true,/* 用于检查switch中是否有case没有使用break跳出switch,默认为false */"noFallthroughCasesInSwitch": true,// 禁用未检查的副作用导入// 如果你导入了一个模块但没有使用其导出的内容,TypeScript 会提示你检查该导入是否必要。// 这有助于避免不必要的导入,减少潜在的副作用,提高代码的可维护性和安全性。"noUncheckedSideEffectImports": true },// 指定要包含在编译中的文件,包括 src 目录下的所有 .ts、.tsx 和 .vue 文件"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"] 
}

相关文章:

  • 公网域名如何解析到内网ip服务器?自己域名映射外网访问
  • Linux:基础IO 文件系统
  • [SystemVerilog] Struct
  • ChatGPT与DeepSeek在科研论文撰写中的整体科研流程与案例解析
  • 使用 malloc 函数模拟开辟一个 3x5 的整型二维数组
  • 多模态大语言模型arxiv论文略读(四十四)
  • linux blueZ 第六篇:嵌入式与工业级应用案例——在 Raspberry Pi、Yocto 与 Buildroot 上裁剪 BlueZ 并落地实战
  • 单例模式:确保类的唯一实例
  • MyBatis 类型处理器(TypeHandler)注册与映射机制:JsonListTypeHandler和JsonListTypeHandler注册时机
  • 单例模式:全局唯一性在软件设计中的艺术实践
  • 《代码整洁之道》第6章 对象和数据结构 - 笔记
  • 04 Enhanced Telecom Operations Map (eTOM)
  • 计算机网络自顶向下思维导图
  • 《代码整洁之道》第12章 迭进 - 笔记
  • EasyRTC嵌入式音视频通信SDK助力视频客服,开启智能服务新时代
  • 嵌入式软件--stm32 DAY 4 中断系统
  • 从零开始了解数据采集(二十一)——电子制造行业趋势分析案例
  • 消防应急物资智能调用立库:豪越科技助力消防“速战速决”
  • 央视两次采访报道爱藏评级,聚焦生肖钞市场升温,评级币成交易安全“定心丸”
  • uniapp: 低功耗蓝牙(BLE)的使用
  • 安阳一村支书微信群骂村民被警方行拘,辩称对方先“污蔑造谣”
  • 体坛联播|利物浦提前4轮夺冠,安切洛蒂已向皇马更衣室告别
  • 南阳市委原书记朱是西被“双开”:搞劳民伤财的“政绩工程”
  • 云南舞蹈大家跳暨2025年牟定“三月会”昨天开幕
  • 2025全国知识产权宣传周:用AI生成的图片要小心什么?
  • 何立峰出席跨境贸易便利化专项行动部署会并讲话