パッケージの詳細

cypress-vite

mammadataei501.4kMIT1.6.0

Run Cypress specs using Vite

cypress, cypress-plugin, cypress-preprocessor, vite

readme

cypress-vite

Run Cypress specs using Vite

Introduction

The cypress-vite plugin is a Cypress preprocessor that allows you to transform and run Cypress e2e specs using Vite.

Why?!

  • Vite is faster than webpack
  • Using same configuration and environment both for development and testing
  • Using Vite config for running e2e tests, no need for re-configuring aliases, etc. for webpack
  • Using vite specific features like plugins and virtual imports, import.meta, etc. in e2e tests

What about @cypress/vite-dev-server?!

The official @cypress/vite-dev-server package is for cypress component testing that creates a vite dev server for mounting and testing React and Vue components.

The cypress-vite is for compiling and running E2E specs. Neither replaces the other, but you can combine them to use vite both for component and E2E testing.

Installation

Install the cypress-vite plugin:

npm install --save-dev cypress-vite

yarn add --dev cypress-vite

pnpm add --save-dev cypress-vite

Usage

For Cypress 10, add the following to your cypress.config.ts file:

import { defineConfig } from 'cypress'
import vitePreprocessor from 'cypress-vite'

export default defineConfig({
  e2e: {
    setupNodeEvents(on) {
      on('file:preprocessor', vitePreprocessor())
    },
  },
})

For Cypress 9 and earlier, add the following to your cypress/plugins/index.js file:

const vitePreprocessor = require('cypress-vite')

/**
 * @type {Cypress.PluginConfig}
 */
module.exports = (on, config) => {
  on('file:preprocessor', vitePreprocessor())
}

Configuration

You can pass a Vite config to the vitePreprocessor function:

import path from 'path'
import { defineConfig } from 'cypress'
import vitePreprocessor from 'cypress-vite'

export default defineConfig({
  e2e: {
    setupNodeEvents(on) {
      on(
        'file:preprocessor',
        vitePreprocessor({
          configFile: path.resolve(__dirname, './vite.config.ts'),
          mode: 'development',
        }),
      )
    },
  },
})

Debugging

Run your tests with the following environment variable to log the debugging output:

DEBUG=cypress-vite

Credits

Thanks to Adam Lynch for inspiration and initial implementation.

License

Distributed under the MIT license.

更新履歴

Changelog

1.6.0 (2024-12-31)

Features

1.5.0 (2023-11-22)

Features

  • add support for vite^5.0.0 and cypress 13 (#81) (6027807)

1.4.2 (2023-07-15)

Bug Fixes

  • override ouput.manualChunks using false (#67) (145627a)

1.4.1 (2023-07-05)

Bug Fixes

  • override rollupOptions.ouput.manualChunks from the user config (#58) (c38600e)

1.4.0 (2023-04-21)

Features

  • allow user to specify full Vite config, not just configFile (#53) (293684f)

Bug Fixes

  • use chokidar file watcher instead of Vite/Rollup watch (#50) (a2eec1d)

1.3.2 (2023-04-11)

Bug Fixes

1.3.1 (2023-03-02)

Bug Fixes

  • ensure code is finished compiling before returning cached file (#36) (91ae5b8)

1.3.0 (2022-12-24)

Features

  • add support for Vite 4 and Cypress 12 (#29) (00dbb75)