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

如何避免Cypress中修改JSON数据导致服务器重新加载?

解决Cypress更新JSON文件触发服务器重载的问题
  • 移动测试数据文件到非监听目录
    开发服务器通常只会监听源码目录(比如src/),把你的test.json移到Cypress专属的目录下,比如cypress/fixtures/或者cypress/temp/,这样文件修改不会触发服务器重载。
    读取和写入的代码调整为:

    // 读取
    const testData = require('../cypress/fixtures/test.json')
    // 写入
    cy.writeFile('../cypress/fixtures/test.json', obj)
    
  • 修改开发服务器的监听排除规则
    如果不想移动文件,直接在开发服务器配置里忽略这个JSON文件的变化。

    • Webpack配置示例:
      module.exports = {
        watchOptions: {
          ignored: ['../test.json'] // 根据你的文件实际路径调整
        }
      }
      
    • Vite配置示例:
      export default defineConfig({
        server: {
          watch: {
            ignored: ['**/test.json']
          }
        }
      })
      
  • 改用Cypress的cy.readFile动态读取
    放弃用Node的require预加载文件,改用Cypress内置的cy.readFile在测试运行时读取最新内容,这种方式不仅能避免模块缓存问题,还能减少触发服务器监听的概率(尤其是文件在Cypress目录下时):

    // 替换原来的require读取
    cy.readFile('../test.json').then(testData => {
      // 在这里处理test数据,比如断言、修改等
    })
    
    // 写入依然用cy.writeFile
    cy.writeFile('../test.json', updatedObj)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 01:50:25