{"id":22756,"library":"vite-plugin-no-bundle","title":"vite-plugin-no-bundle","description":"Vite plugin that enables building libraries without bundling, preserving the module structure for monorepos and native ESM consumption. Current stable version is 4.0.0 (requires Vite 5). The plugin marks all modules as external, copies static assets like CSS as-is, and supports multiple output formats (ESM, CJS). Released relatively actively with breaking changes in major versions. Differentiators: allows deep imports, consumer-side bundling, and tailored code splitting.","status":"active","version":"4.0.0","language":"javascript","source_language":"en","source_url":"https://github.com/ManBearTM/vite-plugin-no-bundle","tags":["javascript","vite-plugin","unbundle","typescript"],"install":[{"cmd":"npm install vite-plugin-no-bundle","lang":"bash","label":"npm"},{"cmd":"yarn add vite-plugin-no-bundle","lang":"bash","label":"yarn"},{"cmd":"pnpm add vite-plugin-no-bundle","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency: plugin requires Vite 5+ (v4 breaking change dropped Vite 4 support).","package":"vite","optional":false}],"imports":[{"note":"Plugin is ESM-only since v3; CJS require will fail.","wrong":"const noBundlePlugin = require('vite-plugin-no-bundle')","symbol":"default","correct":"import noBundlePlugin from 'vite-plugin-no-bundle'"},{"note":"Options type is exported as a type; use 'import type' in TypeScript.","wrong":"import { VitePluginNoBundleOptions } from 'vite-plugin-no-bundle'","symbol":"VitePluginNoBundleOptions","correct":"import type { VitePluginNoBundleOptions } from 'vite-plugin-no-bundle'"},{"note":"Default export only; named export does not exist.","wrong":"import { noBundlePlugin } from 'vite-plugin-no-bundle'","symbol":"noBundlePlugin","correct":"import noBundlePlugin from 'vite-plugin-no-bundle'"}],"quickstart":{"code":"import { defineConfig } from 'vite';\nimport noBundlePlugin from 'vite-plugin-no-bundle';\n\nexport default defineConfig({\n  build: {\n    lib: {\n      formats: ['es'],\n      entry: 'src/index.ts',\n    },\n  },\n  plugins: [\n    noBundlePlugin({\n      copy: '**/*.css',\n      internal: ['some/dependency'],\n      root: 'src',\n    }),\n  ],\n});","lang":"typescript","description":"Configures Vite to build a library without bundling, preserving file structure and copying CSS assets."},"warnings":[{"fix":"Upgrade to Vite 5 or stay on plugin v3.x if using Vite 4.","message":"v4.0.0 drops Vite 4 support, requires Vite 5.","severity":"breaking","affected_versions":"<4.0.0"},{"fix":"Use Vite's built-in 'build.lib.fileName' option instead.","message":"v3.0.0 removes the 'fileNames' option in favor of 'build.lib.fileName'.","severity":"breaking","affected_versions":"<3.0.0"},{"fix":"Switch to ESM imports or use dynamic import().","message":"The plugin is ESM-only. CommonJS require() will throw Module not found or similar errors.","severity":"deprecated","affected_versions":">=3.0.0"},{"fix":"Use ESM format ('es') for library mode if static assets are needed.","message":"When using non-ESM output formats (e.g., CJS), static asset imports will break because import.meta.url is ESM-only.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Set 'root' to the directory containing your entry point (e.g., 'lib' or 'src').","message":"The 'root' option must match your source folder (default 'src'). Misconfiguration leads to wrong relative paths in output.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Upgrade to Vite 5 (npm install vite@latest) or downgrade plugin to v3.x.","cause":"Using plugin v4 with Vite 4.","error":"Error: The plugin 'vite-plugin-no-bundle' requires Vite version >=5.0.0. Current version: 4.x.x"},{"fix":"Use default import: import noBundlePlugin from 'vite-plugin-no-bundle'","cause":"Importing plugin incorrectly using named import.","error":"TypeError: noBundlePlugin is not a function"},{"fix":"Install package (npm i -D vite-plugin-no-bundle) and use ESM import.","cause":"Package not installed or CJS require() used with ESM-only package.","error":"Module not found: Can't resolve 'vite-plugin-no-bundle' in ..."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}