iFaxity / vite-plugin-istanbul

A Vite plugin to instrument code for nyc/istanbul code coverage. In similar way as the Webpack Loader istanbul-instrumenter-loader. Only intended for use in development.
MIT License
90 stars 16 forks source link
coverage cypress-plugin istanbul plugin vite vitejs

vite-plugin-istanbul

Codacy grade npm (scoped) npm bundle size (scoped) npm bundle size (scoped)

A Vite plugin to instrument your code for nyc/istanbul code coverage. In similar way as the Webpack Loader istanbul-instrumenter-loader. Only intended for use in development while running tests.

Only versions targeting the latest stable Vite version is actively developed.

Installation

npm i -D vite-plugin-istanbul

or if you use yarn

yarn add -D vite-plugin-istanbul

API

import IstanbulPlugin from 'vite-plugin-istanbul';

IstanbulPlugin( [ opts ] )

Creates the vite plugin from a set of optional plugin options.

Returns: Vite Plugin

Parameters

Notes

As of v2.1.0 you can toggle the coverage off by setting the env variable VITE_COVERAGE='false', by default it will always instrument the code. To require the explicit definition of the variable, set the option requireEnv to true.

This plugin also requires the Vite configuration build.sourcemap to be set to either true, 'inline', 'hidden'. But the plugin will automatically default to true if it is missing in order to give accurate code coverage. The plugin will notify when this happens in order for a developer to fix it. This notification will show even when the plugin is disabled by e.g opts.requireEnv, VITE_COVERAGE=false. This is due to a limitation of the API for this kind of feature.

Examples

To use this plugin define it using vite.config.js

// vite.config.js
import istanbul from 'vite-plugin-istanbul';

export default {
  open: true,
  port: 3000,
  plugins: [
    istanbul({
      include: 'src/*',
      exclude: ['node_modules', 'test/'],
      extension: ['.js', '.ts', '.vue'],
      requireEnv: true,
    }),
  ],
};

License

MIT