当前位置: 首页 > 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.gsyq.cn/news/1605420.html

相关文章:

  • 【课程设计/毕业设计】基于 SpringBoot 的餐厅前台点餐后台管理系统 轻量化餐饮订单服务管理系统设计与实现【附源码、数据库、万字文档】
  • vide coding软件开发流程
  • 2026 私域全面严打,无层级矩阵拼团为什么能安稳做
  • 6个真实用户反馈 森优时铁锌维 白发转黑发 改善周期测评
  • 二层三层交换机选型
  • 如何从三星帐户恢复联系人?分步指南
  • 2026 APP竞品分析怎么做?一套完整流程分享
  • 我做了一个 macOS 菜单栏日历应用:白纸日历
  • 为什么多数AI培训学完用不上?因为课程从来不是在真实业务里
  • 告别ROI计算滞后!实测AI Agent实现预算实时动态转移,重塑企业利润链
  • 快手小店商家端采集
  • 城乡结合部村口通行,乡村出行更规范
  • 计算机毕业设计之基于深度学习的垃圾分类与管理系统
  • 地陪APP平台系统开发公司,陪玩平台酒店渠道价值深度解读
  • 2026 年广受信赖的高清无线图传芯片方案商实力盘点
  • 博途plc下载前出现cpu存在无法自动同步的提示
  • 关于跨区比赛队伍分榜排名比较合理
  • LeetCode:347. 前 K 个高频元素
  • M3DM 总览:三大模块的数据流
  • 应用场景与方案优势
  • 智慧安防行业物联网技术与方案指南:从监控到应急响应的全方位解决方案
  • 无需备份即可从 iPhone 恢复已删除短信的 4 种方法
  • Android 开发问题:Invalid <color> for given resource value.
  • Shopify分销系统搭建指南:适合初创团队的低成本增长方案
  • Codex Agent Legion 实现原理与 GitHub 使用指南
  • Rust的async函数中的await点优化与编译器在状态机生成中的转换
  • 墨香情手游全域自由轻功,无束缚飞檐走壁闯江湖
  • 一篇搞懂SpringMVC XML 配置标签<context:component-scan>
  • Skill用得好,下班走得早:一文讲透Skill的结构与设计
  • Win11Debloat终极指南:4步快速清理Windows系统,性能提升70%