Prerequisites
Reproduction url
https://github.com/WooWan/knip-vitest-coverage
Reproduction access
Description of the issue
@vitest/coverage-v8 is incorrectly reported as unused when tests run via
vitest --coverage.
The bare --coverage flag enables coverage with the default provider (v8), so
the package is actually used. But the Vitest plugin only registers the coverage
dependency when a provider is passed as an object (--coverage.provider=v8):
if (typeof parsed['coverage'] === 'object' && parsed['coverage'].provider) {
inputs.push(toDependency(`@vitest/coverage-${parsed['coverage'].provider}`));
}
For a boolean --coverage, parsed.coverage is true, so it is skipped → false positive.
Expected
@vitest/coverage-v8 is recognized as used (default v8 provider).
Actual
Unused devDependencies (1)
@vitest/coverage-v8 package.json
Prerequisites
Reproduction url
https://github.com/WooWan/knip-vitest-coverage
Reproduction access
Description of the issue
@vitest/coverage-v8is incorrectly reported as unused when tests run viavitest --coverage.The bare
--coverageflag enables coverage with the default provider (v8), sothe package is actually used. But the Vitest plugin only registers the coverage
dependency when a provider is passed as an object (
--coverage.provider=v8):For a boolean
--coverage,parsed.coverageistrue, so it is skipped → false positive.Expected
@vitest/coverage-v8is recognized as used (defaultv8provider).Actual