Skip to content
PluginStats

@svifty7/quality-plugin weekly downloads statistics

By svifty7 · npm · Testing

Vitest plugin and CLI for SonarQube analysis by svifty7

View on npm Fresh · Nov 3, 2026

@svifty7/quality-plugin has 635 recorded weekly downloads on npm, ranking #1860 of 2,762 tracked listings.

Weekly downloads
635
Official API · Nov 1, 2026
7-day growth
—
Insufficient history
30-day growth
—
Insufficient history
90-day growth
—
Insufficient history
Rank
#1860
Among tracked npm listings

About @svifty7/quality-plugin

@svifty7/quality-plugin

Connects a Vitest project to SonarQube with a single package: the plugin sets up test and coverage reports, and the quality-scan command runs the analysis. The only thing you configure is environment variables.

Installation

pnpm add -D @svifty7/quality-plugin vitest

Requires Node.js ^22.22.2 || >=24.15.0 and Vitest 5. @vitest/coverage-v8 is a peer dependency: pnpm installs it for you unless auto-install-peers is turned off. Otherwise, install it separately, in the same version as Vitest. @sonar/scan and vitest-sonar-reporter come with the package.

Vitest setup

// vitest.config.ts
import { quality } from '@svifty7/quality-plugin';
import { defineConfig } from 'vitest/config';

export default defineConfig({
  plugins: [quality()],
  test: {
    coverage: {
      include: ['src/**/*.ts'],
    },
  },
});

The plugin only extends your configuration. Values from your Vitest config and CLI are kept:

OptionWhat the plugin does
test.reportersAdds vitest-sonar-reporter, writing sonar-report.xml to coverage.reportsDirectory. Keeps Vitest's default reporters if the list is empty
test.coverage.enabledtrue if not set
test.coverage.providerv8 if not set
test.coverage.reportertext-summary and lcov if not set; otherwise adds lcov

Limitations:

  • The --reporter flag replaces the whole reporter list, so vitest run --reporter=dot does not produce sonar-report.xml.
  • lcov.info is not written with --coverage.enabled=false, or when tests fail unless coverage.reportOnFailure is on.
  • A vitest-sonar-reporter you add to the config yourself writes to its own outputFile, which quality-scan does not take into account.

Environment variables

VariableRequiredDescription
SONAR_HOST_URLyesSonarQube server URL
SONAR_TOKENyesAnalysis token
SONAR_SCANNER_JAVA_EXE_PATHnoPath to java. When set, the scanner does not download a JRE

quality-scan reads SONAR_* from the .env file in the current directory. Other scanner settings work the same way: for example, SONAR_SCANNER_FOO_BAR becomes the sonar.scanner.fooBar property. Variables already set in the environment take priority over .env. The .env file is optional and should stay out of git.

SONAR_HOST_URL=http://localhost:9000
SONAR_TOKEN=squ_...
SONAR_SCANNER_JAVA_EXE_PATH=/path/to/jdk/bin/java

Usage

{
  "scripts": {
    "test": "vitest run",
    "sonar": "quality-scan"
  }
}
pnpm test
pnpm sonar

The command accepts -Dproperty=value and -X (verbose log). On failure it exits with the scanner's exit code, or with 1 if there is none.

pnpm sonar -Dsonar.branch.name=dev -X

Defaults

Without a sonar-project.properties file, quality-scan sets:

PropertyValue
sonar.projectKeyscope:name for a package named @scope/name
sonar.sourcessrc, if the directory exists
sonar.teststest or tests, if the directory exists
sonar.testExecutionReportPathssonar-report.xml in the reports directory, if a test directory is found
sonar.javascript.lcov.reportPathslcov.info in the reports directory, if a test directory is found

quality-scan takes the reports directory from coverage.reportsDirectory in your Vitest config: it loads the config but does not run the tests. If the config fails to load, the command prints a warning and looks for reports in coverage.

The scanner works out the project name, version and links on its own. For a package name without a scope, sonar.projectKey is left to the scanner too.

scan() options outrank the file, so when sonar-project.properties exists, no defaults are passed at all: the file has to describe the whole project, including report paths. Priority, from highest to lowest:

  1. -D arguments.
  2. The defaults from the table above.
  3. Environment variables, including SONAR_SCANNER_JSON_PARAMS.
  4. sonar-project.properties.
  5. package.json.

If you set sonar.sources or sonar.tests through SONAR_SCANNER_JSON_PARAMS, the defaults override them. In that case, add a sonar-project.properties file or pass the properties with -D.

If your tests live next to the code in src, no test directory is found. Describe the project in sonar-project.properties using sonar.tests, sonar.test.inclusions and sonar.exclusions.

CI

Run the tests first, then the analysis. For GitHub Actions:

- name: Test
  run: pnpm test…

Description from the npm listing.

  • vitest-plugin
  • sonarqube
  • coverage

README badge

Show your rank in a README or on your website. The badge updates automatically.

Charts

Images: 30d · 1y · all time · 1600×900 dark

Adoption over time

@svifty7/quality-plugin weekly downloads on npm, last 90 days: 635 weekly downloads as of Nov 1, 2026.@svifty7/quality-pluginWeekly downloads on npm · Last 90 days635downloads / week0100200300400500600700Aug 3Aug 18Sep 2Sep 17Oct 2Oct 17Nov 1downloads / weekobservedarchived (Internet Archive)no observationsOct 29, 2026 – Nov 1, 2026 · 2 observations · Updated Nov …pluginstats.com
@svifty7/quality-plugin weekly downloads on npm, last 90 days: 635 weekly downloads as of Nov 1, 2026.

7/30/90-day growth

@svifty7/quality-plugin weekly downloads growth on npm: 7-day growth unavailable, 30-day growth unavailable, 90-day growth unavailable.@svifty7/quality-pluginWeekly downloads growth on npm635downloads / week now7-day growthinsufficient historyInsufficient history30-day growthinsufficient historyInsufficient history90-day growthinsufficient historyInsufficient historyGrowth vs. nearest observation to each baseline date · Updated Nov 1, 2026pluginstats.com
@svifty7/quality-plugin weekly downloads growth on npm: 7-day growth unavailable, 30-day growth unavailable, 90-day growth unavailable.

Ranking history

@svifty7/quality-plugin npm ranking history: currently #1860 (by weekly downloads).@svifty7/quality-pluginnpm ranking · by weekly downloads · Last 90 days#1860current rank#1800#2000#2200#2400#2600#2800Aug 5Aug 20Sep 4Sep 19Oct 4Oct 19Nov 3rankNov 1, 2026 – Nov 3, 2026 · 2 observations · Updated Nov 1, 2026pluginstats.com
@svifty7/quality-plugin npm ranking history: currently #1860 (by weekly downloads).

Listing placement

All npm2,762 listings · 139 pages · 1,383 shown · page 94, #2 (overall #1,862)
All npm: every listing in weekly downloads order

Listing placement

Testing22 listings · 2 pages · page 1, #6 (overall #6)
Testing: every listing in weekly downloads order

Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.

Each band is one page of 20. Weekly downloads on a linear scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.

Recent observations

Full history (2)
Recent weekly downloads observations for @svifty7/quality-plugin
Date (UTC)Weekly downloadsChange vs. previous
635+635
0—

Data source

Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.

Listing: https://www.npmjs.com/package/@svifty7/quality-plugin. First seen Nov 1, 2026; last successful collection Nov 3, 2026. See the methodology.