Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
vite-plugin-istanbul
Advanced tools
vite-plugin-istanbul ========================== [![Codacy grade](https://img.shields.io/codacy/grade/a0c628b128c044269faefc1da74382f7?style=for-the-badge&logo=codacy)](https://www.codacy.com/gh/iFaxity/vite-plugin-istanbul/dashboard) [![npm (scoped)](http
vite-plugin-istanbul is a Vite plugin that integrates Istanbul for code coverage reporting. It allows you to instrument your code with Istanbul, which is useful for generating code coverage reports during testing.
Code Instrumentation
This feature allows you to instrument your code for coverage reporting. You can specify which files to include or exclude, the file extensions to consider, and whether to require an environment variable to enable instrumentation.
import { defineConfig } from 'vite';
import istanbul from 'vite-plugin-istanbul';
export default defineConfig({
plugins: [
istanbul({
include: 'src/*',
exclude: ['node_modules', 'test/'],
extension: ['.js', '.ts', '.vue'],
requireEnv: true,
}),
],
});
Custom Reporting
This feature allows you to customize the reporting options for Istanbul. You can specify the reporters to use and the directory where the reports should be saved.
import { defineConfig } from 'vite';
import istanbul from 'vite-plugin-istanbul';
export default defineConfig({
plugins: [
istanbul({
include: 'src/*',
exclude: ['node_modules', 'test/'],
extension: ['.js', '.ts', '.vue'],
requireEnv: true,
cypress: true,
nyc: {
reporter: ['html', 'text-summary'],
reportDir: './coverage',
},
}),
],
});
babel-plugin-istanbul is a Babel plugin for code coverage using Istanbul. It is similar to vite-plugin-istanbul but is used in Babel-based projects. It provides similar functionality for instrumenting code and generating coverage reports.
karma-coverage is a Karma plugin that uses Istanbul to generate code coverage reports. It is used in projects that use the Karma test runner and provides similar functionality for code instrumentation and reporting.
Jest is a JavaScript testing framework that has built-in support for code coverage using Istanbul. It provides a comprehensive testing solution with integrated code coverage reporting, making it a more all-in-one solution compared to vite-plugin-istanbul.
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.
npm i -D vite-plugin-istanbul
or if you use yarn
yarn add -D vite-plugin-istanbul
import IstanbulPlugin from 'vite-plugin-istanbul';
Creates the vite plugin from a set of optional plugin options.
Returns: Vite Plugin
opts {IstanbulPluginOptions}
- Object of optional options to pass to the plugin.opts.cwd {string}
- Optional string of the current working directory, used for the include/exclude patterns. Defaults to process.cwd()
.opts.include {string|string[]}
- Optional string or array of strings of glob patterns to include.opts.exclude {string|string[]}
- Optional string or array of strings of glob patterns to exclude.opts.extension {string|string[]}
- Optional string or array of strings of extensions to include (dot prefixed like .js or .ts). By default this is set to ['.js', '.cjs', '.mjs', '.ts', '.tsx', '.jsx', '.vue']
.opts.requireEnv {boolean}
- Optional boolean to require the environment variable (defaults to VITE_COVERAGE) to equal true
in order to instrument the code. Otherwise it will instrument even if env variable is not set. However if requireEnv
is not set the instrumentation will stop if the environment variable is equal to false
.opts.cypress {boolean}
- Optional boolean to change the environment variable to CYPRESS_COVERAGE instead of VITE_COVERAGE. For ease of use with `@cypress/code-coverage``.opts.checkProd {boolean}
- Optional boolean to enforce the plugin to skip instrumentation for production environments. Looks at Vite's isProduction key from the ResolvedConfig
.opts.forceBuildInstrument {boolean}
- Optional boolean to enforce the plugin to add instrumentation in build mode. Defaults to false.opts.nycrcPath {string}
- Path to specific nyc config to use instead of automatically searching for a nycconfig. This parameter is just passed down to @istanbuljs/load-nyc-config
.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.
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,
}),
],
};
FAQs
vite-plugin-istanbul ========================== [![Codacy grade](https://img.shields.io/codacy/grade/a0c628b128c044269faefc1da74382f7?style=for-the-badge&logo=codacy)](https://www.codacy.com/gh/iFaxity/vite-plugin-istanbul/dashboard) [![npm (scoped)](http
The npm package vite-plugin-istanbul receives a total of 211,152 weekly downloads. As such, vite-plugin-istanbul popularity was classified as popular.
We found that vite-plugin-istanbul demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.