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

【Vite + Vue + Ts 项目三个 tsconfig 文件】

Vite + Vue + Ts 项目三个 tsconfig 文件

  • 为什么 Vite + Vue + Ts 项目会有三个 tsconfig 文件?
  • 首先我们先了解什么是 tsconfig.json ?

为什么 Vite + Vue + Ts 项目会有三个 tsconfig 文件?

在使用 Vite 创建 vue-ts 模板的项目时,会发现除了 tsconfig.json 外,还有一个 tsconfig.node.json 和 tsconfig.app.json 文件。并在 tsconfig.json 使用了 references 字段引用了其他两个文件
{
  "files": [],
  "references": [
    {
      "path": "./tsconfig.node.json"
    },
    {
      "path": "./tsconfig.app.json"
    }
  ]
}

首先我们先了解什么是 tsconfig.json ?

tsconfig.json 是 TypeScript 项目的配置文件,放在项目的根目录。主要供tsc编译器使用。 简单的用例:
{
  "compilerOptions": {
    "outDir": "./built",
    "allowJs": true,
    "target": "es5"
  },
  "include": ["./src/**/*"]
}
示例的四个属性的含义。

include:指定哪些文件需要编译。
allowJs:指定源目录的 JavaScript 文件是否原样拷贝到编译后的目录。
outDir:指定编译产物存放的目录。
target:指定编译产物的 JS 版本。

TypeScript 3.0 新增的 项目引用(Project References) 功能,它允许用户为项目的不同部分使用不同的 TypeScript 配置。

关于 tsconfig.node.json, 注意到 "include": ["vite.config.ts"] 这段代码,它说明 tscnofig.node.json 是专门用于 vite.config.ts 这一文件的 TypeScript 配置文件。
关于 tsconfig.app.json, 注意到 "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"] 这段代码,它说明 tscnofig.app.json 是专门用于 src 代码文件的。

故而,如果要控制 src 文件夹下的文件的编译行为的时候,就需要在 tsconfig.app.json 文件中添加对应的配置;反之,如果要控制 vite.config.ts 的编译行为就在 tsconfig.node.json 中添加配置。
实例:vite+ts+vue 项目,使用 Vuex 库的时候出现 无法找到模块“vuex”的声明文件。 的问题

在 tsconfig.app.json 中添加 "vuex":["./node_modules/vuex/types"], 即可。
{
  "compilerOptions": {

    "paths":{
      "vuex":["./node_modules/vuex/types"],
    },
  }
}

```txt
"vuex":["./node_modules/vuex/types"]:
这里定义了一个路径映射规则。它告诉 TypeScript 编译器,当代码中导入(import)vuex 模块时,实际上应该从 "./node_modules/vuex/types" 路径下查找模块。这通常用于确保 TypeScript 能够正确地找到和解析 vuex 的类型定义。
故而,我们可以认为 tsconfig.node.json 和 tsconfig.app.json 只是作用在不同文件范围的编译配置文件。如果按照以往的单个 tsconfig.json 配置的形式就无法根据模块或者部分文件进行特殊的编译处理。

原文链接:https://juejin.cn/post/7431336795126054953


http://www.kler.cn/a/527236.html

相关文章:

  • springboot集成钉钉,发送钉钉日报
  • deepseek 潜在变量Z的计算;变分自编码器(VAE); 高斯混合模型(GMM)
  • pytorch基于GloVe实现的词嵌入
  • 深入理解Flexbox:弹性盒子布局详解
  • 【B站保姆级视频教程:Jetson配置YOLOv11环境(五)Miniconda安装与配置】
  • AI大模型开发原理篇-6:Seq2Seq编码器-解码器架构
  • Github 2025-01-31Java开源项目日报 Top10
  • 国产之光DeepSeek架构理解与应用分析
  • 【llm对话系统】大模型 Llama 源码分析之 Flash Attention
  • OPENGLPG第九版学习
  • Baklib对比其他知识管理工具的优势及应用效果全面分析
  • 数模测评:doubao1.5>deepseek-v3>gpt-o1
  • C# 实现 “Hello World” 教程
  • 37. RGBLCD实验
  • 最新Python大数据之Python基础【十】学生管理系统面向对象版_python面向对象学生管理系统
  • JAVA实战开源项目:网上购物商城(Vue+SpringBoot) 附源码
  • 随笔 | 写在一月的最后一天
  • Vue-cli 脚手架搭建
  • 翻译: Anthropic CEO:DeepSeek-R1是人工智能领域的革命吗?一
  • gentoo中利用ollama运行DeepSeek-R1
  • Bash 基础与进阶实践指南
  • 【搜索回溯算法篇】:拓宽算法视野--BFS如何解决拓扑排序问题
  • FreeRTOS从入门到精通 第十五章(事件标志组)
  • Spring Boot 配置文件详解:YAML vs Properties
  • 边缘计算与ROS结合:如何实现分布式机器人智能决策?
  • C 语言实现计算一年中指定日期是第几天 题】