tsconfig.json和tsconfig.app.json文件解析(vue3+ts+vite)

tsconfig.json

{
  "files": [],
  "references": [
    {
      "path": "./tsconfig.node.json"
    },
    {
      "path": "./tsconfig.app.json"
    }
  ]
}

https://www.typescriptlang.org/tsconfig/#files

files: 在这个例子中,files 数组是空的。这意味着此配置文件本身不直接包含任何 TypeScript 文件。这是因为它作为一个顶层项目配置,用于引用其他的 TypeScript 配置文件,而不是直接处理文件。

https://www.typescriptlang.org/tsconfig/#references

references: 这个属性包含了一个对象数组,每个对象指向一个不同的 tsconfig 文件。这表明当前项目依赖于这些子项目或配置。每个引用都通过 path 属性指定,指向一个子项目的 tsconfig.json 文件。

tsconfig.app.json:

{
  "extends": "@vue/tsconfig/tsconfig.dom.json",
  "include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
  "exclude": ["src/**/__tests__/*"],
  "compilerOptions": {
    "experimentalDecorators": true,
    "composite": true,
    "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",

    "baseUrl": ".",
    "paths": {
      "@/*": ["./src/*"]
    }
  }
}

https://www.typescriptlang.org/tsconfig/#extends

"extends": "@vue/tsconfig/tsconfig.dom.json": 这表明该配置继承自一个预设的 TypeScript 配置,专为在 DOM 环境中运行的 Vue 应用程序设计。这个预设可能包含了一套推荐的编译器选项,适用于大多数 Vue 项目,如适当的 lib 选项(比如包含 dom 和其他浏览器环境的类型定义),以及为 Vue 文件和 DOM API 使用的最佳实践

https://www.typescriptlang.org/tsconfig/#include

"include": ["src/**/*", "src/**/*.vue", "types/**/*.d.ts"]: 指定了 TypeScript 编译器应该包含哪些文件。这里包括了项目的 src 目录下的所有文件(无论何种扩展名),所有 Vue 组件文件(.vue),以及 types 目录下的所有 TypeScript 声明文件(.d.ts)。这确保了项目中所有相关的文件都将被 TypeScript 处理。

https://www.typescriptlang.org/tsconfig/#exclude

"exclude": ["src/**/__tests__/*"]: 排除了所有在 __tests__ 目录下的文件,这通常是单元测试文件所在的地方。这样做可以防止测试文件被编译到生产构建中,同时也可能加快编译过程,因为测试文件不会被 TypeScript 处理。

https://www.typescriptlang.org/tsconfig/#experimentalDecorators

装饰器支持(Decorator Support):装饰器是一种特殊的语法,用于修改类、方法、属性等的行为。在tsconfig.json中,你可以使用"experimentalDecorators"选项来启用装饰器的支持。将该选项设置为true后,你就可以在代码中使用装饰器。

TypeScript: TSConfig Reference - Docs on every TSConfig option

"composite": true: 启用了项目的组合模式,这对于大型项目或者当你想要将项目分割成多个子项目时非常有用。它允许 TypeScript 项目引用其他 TypeScript 项目,便于代码的模块化和重用。

https://www.typescriptlang.org/tsconfig/#tsBuildInfoFile

"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo": 指定了 TypeScript 构建信息文件的存放位置。这个文件用于存储关于项目的增量编译信息,可以帮助 TypeScript 编译器快速地执行后续的编译,提高构建性能

https://www.typescriptlang.org/tsconfig/#baseUrl

"baseUrl": ".": 设置了模块解析的基准目录为项目的根目录。这是 paths 映射的基础。

https://www.typescriptlang.org/tsconfig/#paths

"paths": {"@/*": ["./src/*"]}: 提供了一个别名配置,允许在项目中使用 @ 前缀来引用 src 目录下的文件。这是一种常见的做法,可以使得在项目中引用模块时的路径更简洁明了。

人工智能学习网站

https://chat.xutongbao.top

参考链接

https://blog.csdn.net/shaoshaoh/article/details/136374954

### 关于 `tsBuildInfoFile` 的配置说明 #### tsBuildInfoFile 参数解释 TypeScript 编译器提供了一个名为 `incremental` `tsBuildInfoFile` 的选项来启用增量编译功能。当启用了此特性之后,TypeScript 将会保存有关先前构建的信息到指定文件中以便加速后续的构建过程。 对于 `tsBuildInfoFile './node_modules/.tmp/tsconfig.app.tsbuildinfo'` 这样的设置意味着: - 增量编译信息将会被存储在一个特定路径下的 `.tsbuildinfo` 文件里,在这个例子中就是位于项目根目录下 `./node_modules/.tmp/` 路径中的 `tsconfig.app.tsbuildinfo` 文件。 该参数通常用于大型项目以减少重新编译整个项目的开销并提高开发效率[^1]。 #### 配置方式 为了使用自定义位置作为 `tsBuildInfoFile` ,可以在 `tsconfig.json` 中加入如下字段: ```json { "compilerOptions": { ... "incremental": true, "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo" } } ``` 这告诉 TypeScript 使用相对路径指向的目标文件来进行增量编译记录。 #### 可能遇到的问题及解决方案 ##### 清除缓存数据 如果发现某些错误持续存在或者更新后的代码未生效,则可能是由于旧版的 .tsbuildinfo 文件导致的问题。此时可以尝试删除对应的`.tsbuildinfo` 文件让 TypeScript 创建新的增量信息文件。 ##### 权限不足 有时可能会因为权限问题无法写入指定的位置特别是像 `/usr/local/lib/node_modules/`这样的全局安装包所在区域。这时可以通过调整文件夹访问权限命令如 `chmod` 或者选择其他有足够权限读写的本地路径来解决问题[^3]。 ##### 插件依赖缺失 在一些情况下,第三方库或插件可能也会间接影响到 TypeScript 构建流程。例如 UmiJS 插件注册失败的情况就表明可能存在缺少必要的模块(比如 React)。因此确保所有必需的依赖项都已正确安装是非常重要的[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐同保

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值