尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Cypress 组件测试中 Vite 5 项目如何配置 devServerPublicPathRoute 对齐应用公共资源路径
Cypress 组件测试中 Vite 5 项目如何配置 devServerPublicPathRoute 对齐应用公共资源路径【免费下载链接】cypressFast, easy and reliable testing for anything that runs in a browser.项目地址: https://gitcode.com/GitHub_Trending/cy/cypress在 Vite 5 项目中跑 Cypress 组件测试时组件测试运行器会使用 Cypress 自己的公共资源路径/__cypress/src而不是应用的根路径。如果被测组件直接引用了应用 public 路径下的资源以 public path URL 方式引用静态资源测试环境里的资源地址就和应用对不上了。cypress/vite-dev-server的官方文档为此提供了配置项在cypress.config的component命名空间里把devServerPublicPathRoute设为空字符串即可让组件测试的公共路径与 Vite 5 应用的默认公共路径一致。该包随 Cypress 二进制一起分发不需要单独安装。版本前提Vite 5 需要搭配 v8 之前的 vite-dev-server按 npm/vite-dev-server/CHANGELOG.mdv8.0.02026-08-26明确移除了 Vite 5–7 的组件测试支持remove Vite 5–7 CT support; require Vite 8。当安装的 vite 版本低于支持范围时getVite会抛出ViteVersionNotSupportedError错误信息为Vite 8 is the required version to use cypress/vite-dev-server. Found Vite version v当前版本见 npm/vite-dev-server/src/getVite.ts。npm/vite-dev-server/README.md 的 Compatibility 表给出了cypress/vite-dev-server与 Cypress 的对应关系cypress/vite-dev-servercypress v2 v9 v3 v5 v10 v13 v6 v14 v7 (esm only) v15 v8 (esm only) v16Vite 5 项目应保留在使用 v8 之前系列 vite-dev-server 的 Cypress 版本按上表v6 系列对应 cypress v14v7 系列esm only对应 cypress v15。v8 系列cypress v16要求 Vite 8Vite 5 已不受支持。本文的配置操作适用于这一版本范围。默认公共路径为什么影响资源引用devServerPublicPathRoute是组件测试专用的配置项源码注释标为 ct-testing specific configuration默认值为/__cypress/src见 packages/config/src/options.ts。vite-dev-server 在解析配置时会把这个值作为 Vite 的base见 npm/vite-dev-server/src/resolveConfig.tsconst viteConfig: InlineConfig { root: projectRoot, base: ${devServerPublicPathRoute}/, // ... }也就是说默认情况下组件测试的资源路径前缀是/__cypress/src/。README 指出了需要改这个值的场景使用 Vite 5 时如果组件测试中直接引用 public path URL 的资源可能就需要设置devServerPublicPathRoute把公共路径设置得与应用一致。配置 devServerPublicPathRoute在cypress.config的component命名空间内把devServerPublicPathRoute设为空字符串。README 中的原始示例import { defineConfig } from cypress export default defineConfig({ component: { // If wanting a publicPath the same as the default in Vite 5 devServerPublicPathRoute: } })设为即表示公共路径与 Vite 5 的默认值相同README 注释原文结合上面的base拼接逻辑实际生效的base为/与应用对齐。这项配置可以和 README 的 object-syntaxdevServer示例放在同一个component命名空间中示例里的framework取你项目实际使用的组件框架bundler固定为viteimport { defineConfig } from cypress export default defineConfig({ component: { devServer: { framework: react, bundler: vite, // viteConfig?: Will try to infer, if passed it will be used as is }, devServerPublicPathRoute: } })README 将两个示例分开给出这里合并展示以说明二者同属component命名空间。设为根路径后测试运行脚本有对应的适配当devServerPublicPathRoute为时客户端运行时会改用基于 base 目录的相对路径来加载 support 文件和 spec见 npm/vite-dev-server/client/initCypressTests.js因此公共路径改为根路径后 spec 仍能正常加载。可选函数语法显式指定 viteConfig如果需要显式指定 Vite 配置而不是依赖推断README 提供了devServer函数语法文档说明该签名面向 advanced use-cases。vite.config.mjs解析到项目根目录下的 Vite 配置文件framework需按实际框架替换import { fileURLToPath } from node:url import { devServer } from cypress/vite-dev-server import { defineConfig } from cypress function resolvePackage (specifier) { return fileURLToPath(import.meta.resolve(specifier)) } export default defineConfig({ component: { devServer(devServerConfig) { return devServer({ ...devServerConfig, framework: react, viteConfig: resolvePackage(vite.config.mjs) }) }, devServerPublicPathRoute: } })验证与边界仓库文档没有给出针对这一配置的独立验证命令判断依据是 README 给出的问题场景本身被测组件是否直接引用 public path URL 资源。据此可以这样核对对引用了 public 路径资源如图片的组件运行一次组件测试确认资源能够加载——这正是 README 所说 settingdevServerPublicPathRoutemay be needed 的场景如果组件并不引用 public path URL 资源则不需要配置保持默认值/__cypress/src不受影响。两点边界需要留意该配置项只作用于组件测试ct-testing specific configuration与 E2E 测试路径无关README 中这一节的标题是 devServerPublicPathRoutefor Vite v5官方示例的目标是让公共路径与 Vite 5 的默认值根路径相同。如果你的应用 Vite 配置把base设成了非根路径可参照base: ${devServerPublicPathRoute}/的拼接规则自行取值使组件测试前缀与应用一致。【免费下载链接】cypressFast, easy and reliable testing for anything that runs in a browser.项目地址: https://gitcode.com/GitHub_Trending/cy/cypress创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

DPWM不连续脉宽调制详解:从SVPWM到三相逆变器Simulink仿真对比

DPWM不连续脉宽调制详解:从SVPWM到三相逆变器Simulink仿真对比

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/9/10 19:46:51
MTProxy动态IP高可用架构设计:智能重连与DNS解析解决方案

MTProxy动态IP高可用架构设计:智能重连与DNS解析解决方案

MTProxy动态IP高可用架构设计:智能重连与DNS解析解决方案 MTProxy作为Telegram官方推荐的高性能代理工具,在云服务器动态IP环境下面临连接稳定性挑战。本文将深入分析MTProxy内置的动态IP处理机制,从网络连接管理、智能重连算法到DNS解析优化…

📅 2026/9/10 19:46:50
Mermaid Radar Chart(radar-beta)完全指南:用多维雷达图做技能评估与性能对比

Mermaid Radar Chart(radar-beta)完全指南:用多维雷达图做技能评估与性能对比

Mermaid Radar Chart(radar-beta)完全指南:用多维雷达图做技能评估与性能对比 【免费下载链接】scientific-agent-skills Turn any AI agent into an AI Scientist. The #1 Agent Skills library for science, used by 190,000 scientists wo…

📅 2026/9/10 19:46:50
MORE NEWS

更多资讯

📰

CANN/GE性能调优参数文档

性能调优 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的…

📰

Budibase 客户端组件清单(manifest.json)深度解析:builder 与 client 之间的组件契约

Budibase 客户端组件清单(manifest.json)深度解析:builder 与 client 之间的组件契约 【免费下载链接】budibase AI agents, automations and apps that run your operations. Model agnostic. 项目地址: https://gitcode.com/GitHub_Trend…

📰

西门子博途V19 WinCC RT Advanced上位机开发实战

1. 西门子博途V19 Wincc RT Advanced上位机项目概述在工业自动化领域,上位机系统作为人机交互的核心枢纽,承担着数据监控、设备控制和系统管理的关键职能。西门子TIA Portal(博途)平台集成了WinCC RT Advanced这一专业级上位机开发…

📰

CANN/GE图引擎API:AddGraphWithCopy

AddGraphWithCopy 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFl…

📰

Android MediaRecorder.setOutputFile方法详解与优化实践

1. MediaRecorder.setOutputFile方法深度解析 在Android多媒体开发中,MediaRecorder无疑是音频视频录制功能的核心类。其中setOutputFile()方法作为录制流程的关键环节,直接影响着媒体数据的存储位置和最终输出效果。这个方法看似简单,实则内…

📰

AI设计如何革新节约粮食手抄报制作

1. 项目背景与核心价值2026年的节约粮食手抄报设计正在经历一场技术革命。作为一名长期关注教育科技与设计自动化的从业者,我见证了AI工具如何从简单的模板生成进化到能够理解设计意图、自动优化版面的智能系统。这种转变不仅改变了传统手抄报的制作方式&#xff0c…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬