Skip to content
PluginStats

vite-plugin-babel weekly downloads statistics

By owlsdepartment · npm · Vite plugins

Runs Babel in Vite during all commands

View on npm Stale · Oct 18, 2026

vite-plugin-babel has 150,259 recorded weekly downloads on npm, a decrease of 43.7% over the past 30 days, ranking #427 of 2,391 tracked listings.

Weekly downloads
150,259
Official API · Oct 18, 2026
7-day growth
-54.6%
-180.5K weekly downloads
30-day growth
-43.7%
-116.4K weekly downloads
90-day growth
-50.9%
-155.5K weekly downloads
Rank
#427
Among tracked npm listings

About vite-plugin-babel

Vite Plugin Babel

Run Babel during any Vite command, also during serve.

Motivations

Most Vite plugins runs Babel only during build, not serve, and only other possible way to do this is via @vitejs/plugin-react. ESBuild is awesome tool, but doesn't support some experimental features, like decorators (issue #2349) or class instance fields, out of box. You can use them in TypeScript, but not pure JS. This plugin was made to enable usage of such features and runs babel during optimizeDeps, dev and build stages, but it can be configured.

Installation

# yarn
yarn add -D vite-plugin-babel

# npm
npm install -D vite-plugin-babel

Usage

Add it to your Vite config

import { defineConfig } from 'vite';
import babel from 'vite-plugin-babel';

export default defineConfig({
    plugins: [
        // Babel will try to pick up Babel config files (.babelrc / .babelrc.* / babel.config.*)
        babel(),
        // ...
    ],

    // ...
})

Config

Babel config can be either passed to babelConfig field or via Babel config file. For all babel options see: Babel Options.

By default, babel is run for JS/JSX files (include defaults to /\.jsx?$/). To scope it to other files, set include / exclude and add the matching Babel presets/plugins to babelConfig yourself.

Migrating from 1.6.x: in 1.7.0 the default of include changed from undefined to /\.jsx?$/. If you previously relied on filter alone to scope files, set include explicitly to your desired scope — filter is now combined with include as an AND, so it can only narrow further, not expand. filter is deprecated; prefer include / exclude.

NameTypeDefaultDescription
apply'serve' | 'build' | (config: UserConfig, env: ConfigEnv) => booleanundefinedLimits plugin usage to only build or only serve. If not specified, will be run during both cycles. Same as apply in Vite Plugins API
enforce'pre' | 'post'preForce plugin's order execution. More details: Vite Plugin Ordering
babelConfigobject{}Babel Transform Options
includestring | RegExp | Array<string|RegExp>/\.jsx?$/Which files to include. Defaults to .js / .jsx. Set explicitly to scope to other extensions — the matching Babel presets/plugins are your responsibility.
excludestring | RegExp | Array<string|RegExp>undefinedWhich files to exclude. Takes priority over include.
filterRegExp | (id: string) => booleanundefinedDeprecated. Combined with include as an AND — can only narrow further, not expand. Prefer include / exclude.
loaderLoader or (path: string) => LoaderundefinedVite 7 and lower This tells esbuild how to interpret the contents after babel's transformation. For example, the js loader interprets the contents as JavaScript and the css loader interprets the contents as CSS. The loader defaults to js if it's not specified. See the Content Types page for a complete list of all built-in loaders.
optimizeOnSSRbooleanfalseRun dependency optimization during SSR. Could be useful when running a project on a cloud workers, like @cloudflare/vite-plugin

Tips

Vite team didn't enable and include Babel by default, because they wanted to keep experience as fast as possible and esbuild can already do a lot of things, you would probably do with Babel. Because of that, we recommend to only include those Babel plugins you really need. You can use option babelConfig.configFile and omit Babel config file usage:

babel({
    babelConfig: {
        plugins: ['@babel/plugin-proposal-decorators']
    }
})

or just use Babel config file.

NOTE: Any babel plugins and presets need to be installed seperately and are not included with this package.

Troubleshooting

[ERROR] The JSX syntax extension is not currently enabled

This usually happens when you're using this plugin to only transform part of a .jsx file (such as decorators), and leaving the JSX syntax untouched. By default, esbuild interprets contents as .js, so you'll need to specify the loader esbuild should use.

Example:

import { extname } from 'path';
// ...
babel({
    babelConfig: {
        plugins: ['@babel/plugin-proposal-decorators'],

        // uses the jsx loader for .jsx files
        loader: path => {
          if (extname(path) === '.jsx') {
            return 'jsx';
          }
        },
    }
})

License

Library is under MIT License

Description from the npm listing.

  • vite-plugin
  • vite
  • babel

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

vite-plugin-babel weekly downloads on npm, last 90 days: 150,259 weekly downloads as of Oct 18, 2026, -50.9% over 90 days.vite-plugin-babelWeekly downloads on npm · Last 90 days150,259downloads / week-50.9% over 90 days0100K200K300K400K500KJul 20Aug 4Aug 19Sep 3Sep 18Oct 3Oct 18downloads / weekobservedarchived (Internet Archive)no observationsJul 23, 2026 – Oct 18, 2026 · 88 observations · Updated Oc…pluginstats.com
vite-plugin-babel weekly downloads on npm, last 90 days: 150,259 weekly downloads as of Oct 18, 2026, -50.9% over 90 days.

7/30/90-day growth

vite-plugin-babel weekly downloads growth on npm: -54.6% over 7 days, -43.7% over 30 days, -50.9% over 90 days.vite-plugin-babelWeekly downloads growth on npm150,259downloads / week now7-day growth-180,518 weekly downloads-54.6%30-day growth-116,414 weekly downloads-43.7%90-day growth-155,525 weekly downloads-50.9%Growth vs. nearest observation to each baseline date · Updated Oct 18, 2026pluginstats.com
vite-plugin-babel weekly downloads growth on npm: -54.6% over 7 days, -43.7% over 30 days, -50.9% over 90 days.

Ranking history

vite-plugin-babel npm ranking history: currently #427 (by weekly downloads).vite-plugin-babelnpm ranking · by weekly downloads · Last 90 days#427current rank#420#422#424#426#428#430Jul 23Aug 7Aug 22Sep 6Sep 21Oct 6Oct 21rankOct 18, 2026 – Oct 21, 2026 · 4 observations · Updated Oct 18, 2026pluginstats.com
vite-plugin-babel npm ranking history: currently #427 (by weekly downloads).

Listing placement

All npm2,389 listings · 120 pages · 1,195 shown · page 22, #7 (overall #427)
All npm: every listing in weekly downloads order

Listing placement

Vite plugins257 listings · 13 pages · page 3, #14 (overall #54)
Vite 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 vite-plugin-babel
Date (UTC)Weekly downloadsChange vs. previous
150,259+18.9K
131,337-32K
163,345-17.4K
180,756-75.3K
256,021-77.5K
333,5020
333,502+2.7K
330,777+2.5K
328,232+18.1K
310,156+3.4K
306,801+8K
298,830+8.5K
290,325-72.9K
363,228—

Similar npm Vite plugins plugins

All 20 vite-plugin-babel 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/vite-plugin-babel. First seen Oct 16, 2026; last successful collection Oct 21, 2026. See the methodology.