Skip to content
PluginStats

@razorness/prettier-config weekly downloads statistics

By razorness · npm · Prettier plugins

Shareable Prettier config plus a printer plugin for array bracket spacing, declaration bundling, vertical alignment and blank-line padding

View on npm Fresh · Oct 18, 2026

@razorness/prettier-config has 4 recorded weekly downloads on npm, a decrease of 84.6% over the past 30 days, ranking #2204 of 2,322 tracked listings.

Weekly downloads
4
Official API · Oct 18, 2026
7-day growth
-71.4%
-10 weekly downloads
30-day growth
-84.6%
-22 weekly downloads
90-day growth
—
Insufficient history
Rank
#2204
Among tracked npm listings

About @razorness/prettier-config

@razorness/prettier-config

Shareable Prettier config plus the printer plugin it needs, in one package.

pnpm add -D @razorness/prettier-config prettier
<!-- prettier-ignore -->
// package.json
{
    "prettier": "@razorness/prettier-config"
}

@ianvs/prettier-plugin-sort-imports, prettier-plugin-tailwindcss (when the project uses Tailwind) and this package's own plugin come along, resolved by absolute path — nothing else to install.

What it does

Prettier's own options, set to semi, singleQuote, printWidth: 160, endOfLine: 'lf', trailingComma: 'all', useTabs with tabWidth: 4, bracketSpacing, htmlWhitespaceSensitivity: 'ignore' and importOrder: ['<THIRD_PARTY_MODULES>', '^[.]'].

On top of that, six rules Prettier has no option for — all six at once, which also shows how they interact:

<!-- prettier-ignore -->
// before
const ids = [0];
const retries = 3;

const config = {
    name: 'widget',
    enabled: true,
};

class Widget {
    private cache = new Map();
    render(id: string) {
        const entry = this.cache.get(id);
        const label = entry ?? 'unknown';
        log(label);
        emit(label);
        return label;
    }
}
<!-- prettier-ignore -->
// after
const ids   = [ 0 ],
    retries = 3;

const config = {
    name   : 'widget',
    enabled: true,
};

class Widget {

    private cache = new Map();

    render(id: string) {

        const entry = this.cache.get(id),
            label   = entry ?? 'unknown';
        log(label);
        emit(label);
        return label;

    }

}
  1. [0] became [ 0 ].
  2. The adjacent consts became one declaration. config stayed out — its value spans lines.
  3. Their = line up, and so do render's — note that ids got two spaces, not four: the padding is measured from the column each name starts in, and retries sits at an indent while ids sits behind const .
  4. config's keys line up on the colon.
  5. The class body gained a blank line at each end.
  6. render runs past four lines, so it gained blank lines around it and inside its braces.

bracketSpacing already covers {foo:true} → { foo: true }, .json included.

What the rules refuse to do
  • Array spacing only when the array fits on one line; a broken array is left as Prettier laid it out and [] stays []. Covers array literals, destructuring patterns and TS tuple types.
  • Bundling skips mixed kinds, a blank line between, an attached comment, a multi-line initialiser, export/declare/using — and var, unless razMergeDeclarations: "all".
  • = alignment only for declarators that are a plain identifier with an initialiser. Type annotations and destructuring make the left-hand width depend on layout, so those are skipped — without disqualifying the declaration and without counting towards the column, the same way key alignment skips shorthand and spread members. It pads the names and never touches indentation: continuation declarators stay at the plain indent Prettier gives them, and the padding is measured from the column each name starts in — keyword.length + 1 for the first, tabWidth for the rest — so the separators still land in one column. Aligning the indentation to the keyword width instead is what an earlier version did, and it cannot be done cleanly under useTabs: the keyword width is no multiple of tabWidth, so it needs spaces, and Prettier emits an align string ahead of the tabs of any nested indent. A declarator whose value spanned lines came out indented ' \t' — spaces before a tab.
  • Key alignment only for objects already multi-line in the source — the same signal Prettier itself uses, which is what keeps it stable across runs. Also covers interface bodies and type literals. Shorthand properties, methods and spreads are skipped without splitting a group; computed keys are skipped entirely, since a computed key can contain its own :.
  • Class body padding applies regardless of length. Empty bodies stay {}.
Block padding

Two halves, two options, one shared razBlockPaddingMinLines threshold — but they weigh different things, which is visible in the output:

measuresat the default of 5
razBlockPadding (outside)the whole statement, braces includeda four-line body still qualifies
razBlockBodyPadding (inside)only what sits between the bracesneeds more than four lines
<!-- prettier-ignore -->
// four lines between the braces: outside padding only
function four() {
    one();
    two();
    three();
    four();
}

// five lines: outside and inside
function five() {

    one();
    two();
    three();
    four();
    five();

}

// too short for either half
function small() {
    return 1;
}
if (x) tiny();

Line counts decide it, never nesting depth. Here the describe body spans six lines and is padded; the for body inside it spans four and stays tight:

<!-- prettier-ignore -->
describe('fixtures', () => {

    for (const name of names) {
        test(name, () => {
            expect(format(name)).toBe(name);
        });
    }

});

Both are measured on the formatted output, not the source, which is what makes the rule idempotent: a three-line function that formats to eight is padded on the first run, so format-on-save never rewrites the same file twice.

Options…

Description from the npm listing.

  • prettier
  • prettier-config
  • prettier-plugin
  • formatter
  • alignment

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

@razorness/prettier-config weekly downloads on npm, last 90 days: 4 weekly downloads as of Oct 18, 2026.@razorness/prettier-configWeekly downloads on npm · Last 90 days4downloads / week0100200300400500600700Jul 20Aug 4Aug 19Sep 3Sep 18Oct 3Oct 18downloads / weekobservedarchived (Internet Archive)no observationsJul 22, 2026 – Oct 18, 2026 · 89 observations · Updated Oc…pluginstats.com
@razorness/prettier-config weekly downloads on npm, last 90 days: 4 weekly downloads as of Oct 18, 2026.

7/30/90-day growth

@razorness/prettier-config weekly downloads growth on npm: -71.4% over 7 days, -84.6% over 30 days, 90-day growth unavailable.@razorness/prettier-configWeekly downloads growth on npm4downloads / week now7-day growth-10 weekly downloads-71.4%30-day growth-22 weekly downloads-84.6%90-day growth+4 weekly downloadsInsufficient historyGrowth vs. nearest observation to each baseline date · Updated Oct 18, 2026pluginstats.com
@razorness/prettier-config weekly downloads growth on npm: -71.4% over 7 days, -84.6% over 30 days, 90-day growth unavailable.

Ranking history

@razorness/prettier-config npm ranking history: currently #2204 (by weekly downloads).@razorness/prettier-confignpm ranking · by weekly downloads · Last 90 days#2204current rank#2200#2205#2210#2215#2220#2225#2230Jul 22Aug 6Aug 21Sep 5Sep 20Oct 5Oct 20rankOct 18, 2026 – Oct 20, 2026 · 3 observations · Updated Oct 18, 2026pluginstats.com
@razorness/prettier-config npm ranking history: currently #2204 (by weekly downloads).

Listing placement

All npm2,320 listings · 116 pages · 1,162 shown · page 111, #8 (overall #2,208)
All npm: every listing in weekly downloads order

Listing placement

Prettier plugins244 listings · 13 pages · page 9, #12 (overall #172)
Prettier plugins: 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 (122)
Recent weekly downloads observations for @razorness/prettier-config
Date (UTC)Weekly downloadsChange vs. previous
4+4
0-1
1-5
6-4
10-3
130
13-1
14-1
15+1
14-1
15+4
11+3
8-3
11—

Similar npm Prettier plugins plugins

All 20 @razorness/prettier-config alternatives

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/@razorness/prettier-config. First seen Oct 16, 2026; last successful collection Oct 20, 2026. See the methodology.