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

vitest + vue3 踩坑记录

Vitest最大的坑点是有太多隐式规则,导致与常规构建效果不一致,于是无法达到常规构建一致的效果。

1. 插件 transfrom 没效果。

经过研究vitest默认不处理公共库,如果有公共库要处理,需要配置到:test.server.deps.inline

2. 模块被resolve到commonjs版本

模块被resolve到commonjs版本看似无关紧要,反正都能用,commonjs反而更容易在node中跑起来。但是作为测试来说,对真实环境的模拟就不像了。比如我在测试时想要证明我的代码能在开启__VUE_OPTIONS_API__: false的情况下也能用。因为Vue的commonjs预构建产物没有__VUE_OPTIONS_API__,虽然代码能用但是不能证明是正确的。
解法是通过插件提前按照browser的规则resolve出来,我这里使用@rollup/plugin-node-resolve这个插件。

(function(){letplugin=nodeResolve({browser:true});plugin.resolveId.order=undefined;// 调整钩子执行顺序plugin.enforce="pre";// 确保在 Vite 内部插件之前执行returnplugin;})()

3. tsx 配置失效

typescript明明配置了,但是产物和预期不符。经过研究,发现是@vitejs/plugin-vue-jsx这个插件导致的,这个插件内置了一套基于babel的typescript编译配置,这个配置方案是没有读取typescript配置的,导致产物不符合配置。理想的方案是前面已经把tsx转成jsx了,这个插件只处理jsx。配置修改如下

(function(){letplugin=vueJsx({tsTransform:'built-in',include:/\.(j|t)sx$/});plugin.transform.order=undefined;plugin.enforce="pre";// 确保提前拦截和处理returnplugin;})()
http://www.cnnetsun.cn/news/3056229.html

相关文章:

  • 质量好的号卡随身wifi哪家靠谱
  • 地陪APP平台系统开发公司,陪玩平台酒店渠道价值深度解读
  • 独立站建站,有哪些靠谱服务商?
  • 郑州电脑租赁哪家靠谱?办公本租赁避坑与挑选指南
  • 14901黄大年茶思屋榜文第149期 第1题 视频通话场景下的基于3DGS的人体重建
  • 你的REST接口还在“过度投喂”数据吗?——FastAPI + GraphQL实战避坑指南
  • ChatGPT写代码总翻车?这5个底层提示词逻辑漏洞,92%开发者至今未察觉:你中招了吗?
  • GPT-5.6发布前被叫停
  • 社评:筑牢思想主权之基,开启文明认知跃迁——论“贾子理论大厦”在人工智能时代的范式革命与时代价值
  • ESP32闪存管理深度解析:高级擦除技术与性能优化实战
  • 中山汽车音响老店实战测评2026
  • 深入探索 C++20 与 C++23 新特性:从缩写函数模板到模块系统的全面解析
  • Java毕设选题推荐:基于 SpringBoot 的用户权限博客内容管理系统 图文博客资讯发布与留言交互系统设计【附源码、mysql、文档、调试+代码讲解+全bao等】
  • Navicat重置工具:3步实现Mac版Navicat无限试用终极指南
  • 基于SpringBoot3+Vue3的图书漂流管理系统的设计与实现(AI问答、协同过滤算法、Echarts图形化分析)
  • VirtualBox + Ubuntu22.04 虚拟机完整安装教程(以Ubuntu22.04为例)/打开虚拟机,在终端输入命令ls-l出现的结果/Linux相关职业 招聘要求
  • 高效获取网盘真实下载地址:LinkSwift直链解析工具深度解析
  • 【毕业设计】基于 SpringBoot+Vue 的老年帮扶项目管理服务平台 智慧社区视域下爱老助老综合服务平台设计实现(源码+文档+远程调试,全bao定制等)
  • OpenMontage:基于开源AI模型的全链路自动化视频生成框架实战
  • 【HarmonyOS/OpenHarmony】:StageMode 工程如何为多设备扩展打基础
  • 为什么IT系统需要可观测性
  • Android Architecture Templates架构解析:对标大厂的高效模块化架构模块实现
  • 收藏!Java vs Python:小白程序员入行后端开发必看指南
  • TCC模式——分布式事务的“押金预扣法“
  • 大模型推理服务显存管理与 KV Cache 优化技术深度解析:从 PagedAttention 到 MLA 的低成本长上下文推理演进
  • openeuler/libummu部署指南:从源码编译到生产环境安装
  • Anthropic-Cybersecurity-Skills:基于Claude的网络安全AI技能框架实战指南
  • C# 基于OpenCv的视觉工作流-章90-YOLO分类
  • PBKDF2 vs Argon2:密钥派生函数如何选择
  • 范式重构与认知跃迁:贾子理论对波普尔证伪主义的超越及组织生存逻辑研究