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

vite功能之---TypeScript

Vite 天然支持引入 .ts 文件

意思是不需要额外配置,vite内置了对.ts文件的转译

vite仅执行转译

  • 请注意,Vite 仅执行 .ts 文件的转译工作,并不执行 任何类型检查。并假定类型检查已经被你的 IDE 或构建过程处理了。
  • Vite 之所以不把类型检查作为转换过程的一部分,是因为这两项工作在本质上是不同的。转译可以在每个文件的基础上进行,与 Vite 的按需编译模式完全吻合。相比之下,类型检查需要了解整个模块图。把类型检查塞进 Vite 的转换管道,将不可避免地损害 Vite 的速度优势。

vite如何对ts文件进行类型检查

  • 在构建生产版本时,你可以在 Vite 的构建命令之外运行 tsc --noEmit

  • 在开发时,如果你需要更多的 IDE 提示,我们建议在一个单独的进程中运行 tsc --noEmit --watch,或者如果你喜欢在浏览器中直接看到上报的类型错误,可以使用 vite-plugin-checker。

TypeScript 编译器选项

tsconfig.json 是 TypeScript 项目的配置文件,用于指定 TypeScript 编译器的选项。它包含了一系列配置项,帮助开发者控制编译过程、输出内容以及编译的环境等

tsconfig.json文件的基本结构

{
  "compilerOptions": {
    // 编译器选项配置项
  },
  "include": [
    // 包含的文件或文件夹
  ],
  "exclude": [
    // 排除的文件或文件夹
  ],
  "files": [
    // 显式列出要包含的文件
  ],
  "extends": "./base.tsconfig.json",
  "references": [
    // 项目引用
  ]
}

compilerOptions: compilerOptions配置项详解-CSDN博客

include:include配置项详解-CSDN博客

exclude:exclude配置项详解-CSDN博客

files:files 配置项详解-CSDN博客

extends:files 配置项详解-CSDN博客

references:references配置项详解-CSDN博客

客户端类型的背景

vite.config.json 文件中,"客户端类型"(client type)通常是指针对不同的构建目标,Vite 如何处理和优化客户端代码的设置。Vite 是一个现代化的前端构建工具,它支持多种构建目标,包括不同的 JavaScript 环境。通过配置文件中的相关选项,开发者可以指定构建的客户端类型,以便 Vite 更好地进行优化。

客户端类型的背景

  • Vite 的构建目标通常是浏览器(客户端)或 Node.js(服务器端),不同的构建目标会影响 Vite 如何处理代码的转换、优化和构建输出。
  • 客户端类型(通常指的是 targetbuild.target 配置项)决定了构建过程中代码的转译策略。Vite 会根据目标环境选择不同的编译选项,比如 JavaScript 的特性、Polyfill 和压缩等。

target 配置项

  • JavaScript 语法转译:例如,是否支持旧版本的浏览器(例如 IE11)。
  • Polyfill 的引入:对于不支持某些现代 JavaScript 特性的浏览器,Vite 可能会自动引入 Polyfill。
  • 代码优化:Vite 会根据目标环境对代码进行优化,比如去除不必要的代码,或者转换成更兼容的版本。

browserslist 配置

你还可以在项目根目录中通过 browserslist 配置来设置客户端类型,Vite 会根据这个配置来决定如何编译代码。

browserslist 允许你指定支持的浏览器版本,Vite 会根据这些要求生成相应的构建输出。

Vite 构建的目标环境

Vite 支持的客户端类型通常指代浏览器目标环境。例如,开发者可能需要构建适合 现代浏览器(如 Chrome、Firefox)或者 兼容性较差的旧版浏览器(如 IE11)的代码。根据不同的需求,Vite 可以调整编译方式,以优化浏览器兼容性或提升性能。


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

相关文章:

  • Ubuntu把应用程序放到桌面
  • MySQL 排除指定时间内重复记录的解决方案
  • 基于Python机器学习、深度学习技术提升气象、海洋、水文领域实践应用-以ENSO预测为例讲解
  • Spring Boot中的扫描注解如何使用
  • 软件测试 —— Selenium常用函数
  • uniapp 之 uni-forms校验提示【提交的字段[‘xxx‘]在数据库中并不存在】解决方案
  • Grails应用http.server.requests指标数据采集问题排查及解决
  • 分类问题常用评估指标
  • 小程序如何引入腾讯位置服务
  • 思科—网络安全笔记
  • 异常:o.s.web.servlet.PageNotFound : No mapping for GET
  • 蓝桥杯第二天学习笔记
  • 使用PWM生成模式驱动BLDC三相无刷直流电机
  • LabVIEW滤波器功能
  • Multi-Agent如何设计
  • 【0x003A】HCI_Write_Current_IAC_LAP命令详解
  • 前端Vue框架——npm ci与npm install的区别以及package-lock.json文件与package.json的区别
  • 【gin】中间件使用之jwt身份认证和Cors跨域,go案例
  • 【scala】含有list子集的递归方法记录层数深度
  • 算法分析与设计之贪心算法
  • 基于pysptools实现端元提取及无监督光谱分类
  • Flink (五) :DataStream API (二)
  • 将内部部署系统的端口暴露给外部访问,并且仅允许指定 IP 的服务器访问该端口
  • 线上资源访问本地数据-跨域问题总结
  • 在eNSp上telnet一下吧
  • ubuntu下安装Mysql 以及3306端口被占用解决方法