Registry / devops / vite-plugin-cjs2esm

vite-plugin-cjs2esm

JSON →
library1.0.10jsnpmunverified

Vite plugin that transforms CommonJS modules to ESModules during development, enabling compatibility with Vite's native ESM dev server. As of v1.0.10, it supports static require, dynamic require, and exports conversion. It provides both a Vite plugin for transformation and an esbuild plugin for optimizeDeps. Key differentiator: specifically targets Vite dev mode, unlike general CJS-to-ESM tools. Release cadence is low. Requires Node >=14.18.0.

npm install vite-plugin-cjs2esm
INSTALL
IMPORT
SIG · VITE-PLUGIN-CJS2ES
V
vite-plugin-cjs2esm
devopsjavascriptv1.0.10
Install
Import
Disk
Pass rate
0/ 6
Env Coverage0 / 6
glibc
1822
musl
1822
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18223 runs
build_error
glibc
node 18223 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

viteCjsToEsmPlugin
import viteCjsToEsmPlugin from 'vite-plugin-cjs2esm'
const viteCjsToEsmPlugin = require('vite-plugin-cjs2esm')
Default export, but usage is via viteCjsToEsmPlugin.vitePlugin() and viteCjsToEsmPlugin.esbuildPlugin().
viteCjsToEsmPlugin.vitePlugin
import viteCjsToEsmPlugin from 'vite-plugin-cjs2esm'; const vitePlugin = viteCjsToEsmPlugin.vitePlugin(options)
import { vitePlugin } from 'vite-plugin-cjs2esm'
vitePlugin is a method on the default export, not a named export.
viteCjsToEsmPlugin.esbuildPlugin
import viteCjsToEsmPlugin from 'vite-plugin-cjs2esm'; const esbuildPlugin = viteCjsToEsmPlugin.esbuildPlugin(options)
import { esbuildPlugin } from 'vite-plugin-cjs2esm'
esbuildPlugin is a method on the default export, used in optimizeDeps.

Configures Vite to convert CommonJS modules to ESM during development using the plugin and its esbuild counterpart.

import { defineConfig } from 'vite'; import viteCjsToEsmPlugin from 'vite-plugin-cjs2esm'; export default defineConfig({ plugins: [viteCjsToEsmPlugin.vitePlugin()], optimizeDeps: { esbuildOptions: { plugins: [viteCjsToEsmPlugin.esbuildPlugin()] } } });
Debug
Known issues
gotchaThe plugin transforms require() calls only in development mode; production builds are handled by Vite's default rollup/bundle process. Do not expect CJS transformations in production builds.
fix
Ensure production builds properly handle CJS dependencies via Vite's pre-bundling and rollup config.
affects: all
gotchadynamic require() calls are converted to dynamic import(). The return value becomes a Promise, which may break synchronous code expecting a direct module value.
fix
Refactor synchronous code that uses dynamic require to handle asynchronous import() with .then() or await.
affects: all
deprecatedIf used with Vite 5+, the plugin may conflict with Vite's internal CJS handling; test compatibility.
fix
Check that the plugin works with your Vite version; consider using Vite's built-in pre-bundling or other plugins.
affects: >=5.0.0
Errors
Common errors & fixes
Error: ESM integration problem: Could not find plugin function 'vitePlugin'
Incorrect import: imported { vitePlugin } instead of default import.
fix
Use: import viteCjsToEsmPlugin from 'vite-plugin-cjs2esm'; then viteCjsToEsmPlugin.vitePlugin()
Module not found: Error: Can't resolve 'vite-plugin-cjs2esm'
Package not installed as dev dependency.
fix
Run: npm install vite-plugin-cjs2esm --save-dev
Cannot find module './foo' when using dynamic require with import()
The dynamic require transformation changes synchronous require to async import(), but the dynamic module path may not be resolved correctly.
fix
Ensure dynamic paths are correctly formatted; test with explicit paths or adjust filter option.
Upgrade
Version history
1.0.10latest on npm
Audit
Dependencies

No dependency data recorded yet.

Agent activity
4 hits · last 30 days
node
4
Resources
vite-plugin-cjs2esm — npm install vite-plugin-cjs2esm · libregistry