Vite Plugin Optimize Exclude
raw JSON → 0.0.1 verified Mon Apr 27 auth: no javascript
A Vite plugin (v0.0.1, stable) that excludes ESM dependencies from Vite's dependency optimization to prevent page reloads caused by 'New dependencies detected'. It scans node_modules and excludes all ESM packages from the pre-bundling process, reducing the likelihood of shared chunk regeneration. Requires Vite >=2.0.0. Differentiator: automates exclusion strategy unlike manual optimizeDeps.exclude configuration.
Common errors
error ERR_REQUIRE_ESM: require() of ES Module not supported ↓
cause Using CommonJS require() on an ESM-only package.
fix
Switch to import statement or use dynamic import().
error TypeError: optimizeExclude is not a function ↓
cause Using default import incorrectly (e.g., destructuring when package has no named default export).
fix
Use import optimizeExclude from 'vite-plugin-optimize-exclude' without destructuring.
Warnings
gotcha Plugin only works in ESM projects; CJS projects will encounter import errors. ↓
fix Ensure your project uses ESM (type: 'module' in package.json) and Vite's ESM mode.
gotcha Excluding too many dependencies may increase the number of HTTP requests and impact performance. ↓
fix Monitor bundle size and request count; consider customizing the exclude list if needed.
Install
npm install vite-plugin-optimize-exclude yarn add vite-plugin-optimize-exclude pnpm add vite-plugin-optimize-exclude Imports
- default wrong
const optimizeExclude = require('vite-plugin-optimize-exclude')correctimport optimizeExclude from 'vite-plugin-optimize-exclude' - VitePluginOptimizeExclude wrong
import { optimizeExclude } from 'vite-plugin-optimize-exclude'correctimport { VitePluginOptimizeExclude } from 'vite-plugin-optimize-exclude' - types
import type { Options } from 'vite-plugin-optimize-exclude'
Quickstart
// vite.config.ts
import { defineConfig } from 'vite';
import optimizeExclude from 'vite-plugin-optimize-exclude';
export default defineConfig({
plugins: [
optimizeExclude({
// Optional: override default behavior
// exclude: ['vue'],
}),
],
});