Skip to content

MetRonnie/cypress-vite

Repository files navigation

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

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 simply pass the vitePreprocessor function the path to your Vite config file:

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

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

Credits

Thanks to Adam Lynch for inspiration and initial implementation.

License

Distributed under the MIT license.

About

Run Cypress specs using Vite

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 88.4%
  • JavaScript 6.4%
  • HTML 3.3%
  • Shell 1.4%
  • CSS 0.5%