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

vite与ts的结合

vite与ts的结合

搭建环境

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="./src/main.ts" type="module"></script>
</head><body></body></html>
console.log("hello");
npm init -y #初始化工程
npm i vite -D  #安装vite
npm run dev

说明: vite天生支持ts, 我们什么都没做, 就可以运行main.ts

TS的特点就是强类型绑定, 最大的作用就是提高代码的规范性

我们将数值类型的值赋值给字符串类型的变量, 在TS中肯定是不合法的, 而且编译器也给出了提示

但是这并不影响我们运行代码, 如果我们更强制的约束, 可以引入插件帮助把语法错误直接输出到控制台

npm install vite-plugin-checker -D
import { defineConfig } from "vite"
import check from "vite-plugin-checker"export default defineConfig({plugins: [check({typescript: true})]
})

该插件依赖TS, TS也需要配置文件

npm install typescript -D
// 配置一些ts的检查手段和规则
{"compilerOptions": {"skipLibCheck": true // 忽略对node_modules目录的检查}
}

重新运行项目, TS语法错误就会阻塞项目, 减少项目中的雷

由于语法错误最终打包失败, 但是在编译到错误错误之前, 还是执行了构建操作

对于大型项目, 边构建边校验这样很浪费时间, 我们希望先检验,再构建

{"name": "04vite-ts","version": "1.0.0","main": "index.js","scripts": {"dev": "vite","build": "tsc --noEmit && vite build","test": "echo \"Error: no test specified\" && exit 1"}
}

TS中使用环境变量会有以下坑

VITE_TARGET=http://www.baidu.com

这个报错是因为tsconfig中默认把ts编译为es3, 就不支持 import.meta属性了, 所以要配置一下

// 配置一些ts的检查手段和规则
{"compilerOptions": {"skipLibCheck": true, // 忽略对node_modules目录的检查"module": "ESNext" // 编译为最新的ES语法}
}

又发现找不到env属性

要通过声明文件解决这个问题

/*** 下面写的是 三斜线指令* readonly是只读的意思, 一般环境变量的值不希望被改*/
/// <reference types="vite/client" />
interface ImportMetaEnv {readonly VITE_TARGET: string
}

课程中是正常了, 而且我这里编译器也通过了

但是vite.config.ts文件报错了, 是因为vite不知道去哪找资源, 模块方案配置为node后, 默认去node_modules中寻找资源

// 配置一些ts的检查手段和规则
{"compilerOptions": {"moduleResolution": "node", // 模块解析方案"skipLibCheck": true, // 忽略对node_modules目录的检查"module": "ESNext" // 编译为最新的ES语法}
}

    http://www.dtcms.com/a/449143.html

    相关文章:

  1. arcgis如何将一部分shp地图截取下来并处理成networkx格式
  2. .NET Aspire深度解析:重新定义云原生分布式应用开发的“秘密武器“
  3. 标准件网站开发手机淘宝网页版
  4. 【网络编程】揭秘 HTTPS 数据安全:加密方案与证书体系的协同防护
  5. Windows Server 2022 安装教程(从 ISO 文件安装 Server STD CORE 2022 64位系统)​
  6. 【STM32】墨水屏驱动开发
  7. Java 大视界 -- 基于 Java 的大数据实时流处理在工业物联网设备故障预测与智能运维中的应用
  8. 【MySQL】SQL的分类
  9. Flutter GridView 使用指南
  10. day86——有效的字母异位词(LeetCode-242)
  11. 企业的网站建设费用重庆seo什么意思
  12. 网站搭建介绍网站建设的原因
  13. 怎么建免费网站建设公司网站新闻宣传管理制度
  14. Deep Code Research:当 Deep Research 遇上 ABCoder
  15. JavaEE初阶——中秋特辑:网络编程送祝福从 Socket 基础到 TCP/UDP 实战
  16. 多模卫星导航定位与应用-原理与实践(RTKLib)3
  17. 数字婵娟:一部关于中秋节的计算主义宣言
  18. ED2K技术
  19. 【数据结构】顺序表0基础知识讲解 + 实战演练
  20. GPU即服务:Linux与云原生如何联手开启AI算力“自来水“时代
  21. 【数据结构】算法复杂度
  22. 校园网门户网站建设招聘网站如何做
  23. 深度学习(十六):数据归一化处理
  24. 力扣70.爬楼梯
  25. 【深度学习计算机视觉】10:转置卷积
  26. 电子商务网站策划素材网站 模板
  27. Coze源码分析-资源库-编辑知识库-后端源码-安全/错误处理机制
  28. 【无标题】标签单击事件
  29. GAMES101:现代计算机图形学入门(Chapter5 光栅化1(三角形遍历))迅猛式学习笔记(附Homework 0)
  30. 【Linux操作系统】进程概念