You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nuxt3集成Cypress时vite-plugin-istanbul引发SSR window未定义错误求助

解决方案

问题根源在于vite-plugin-istanbul默认会对服务端和客户端代码都进行插桩,而服务端渲染(SSR)环境不存在window对象,导致报错。要解决这个问题,只需让插件仅作用于客户端代码即可。

修改你的nuxt.config.ts配置,将istanbul插件放到vite.client.plugins下,确保只在客户端构建流程中启用:

import istanbul from 'vite-plugin-istanbul'

export default defineNuxtConfig({
  // 其他原有配置
  vite: {
    vue: {
      template: {
        transformAssetUrls: true
      }
    },
    client: {
      plugins: [
        istanbul({
          exclude: ['node_modules', 'test/', 'coverage/', '.nuxt/server/'],
          extension: ['.js', '.ts', '.vue'],
          cypress: true
        })
      ]
    }
  }
})

额外说明

  • vite.client配置块专门用于客户端构建的Vite选项,这里添加的插件只会影响客户端代码的打包,不会触及服务端渲染的代码。
  • 额外把.nuxt/server/加入排除列表,可进一步避免误处理服务端相关文件。
  • 调整后,Cypress测试运行时会正常收集客户端代码的覆盖率数据,同时不会影响SSR功能的运行。

内容的提问来源于stack exchange,提问作者Vaibhav Rathore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 03:01:06