{"id":22574,"library":"vite-multiple-assets","title":"vite-multiple-assets","description":"Vite plugin that allows multiple public directories for assets, extending Vite's single publicDir limitation. Current stable version 2.2.6 with TypeScript definitions, released as needed. Key differentiator: configure multiple asset directories (e.g., shared assets across projects) without copying files. Depends on mime-types and Vite >=2.9.6.","status":"active","version":"2.2.6","language":"javascript","source_language":"en","source_url":"https://github.com/nguyenbatranvan/vite-multiple-assets","tags":["javascript","vite-multiple-assets","Vite multiple assets","Vite","Multiple Assets","Multiple directory","Vite multiple publicDir","publicDirs","typescript"],"install":[{"cmd":"npm install vite-multiple-assets","lang":"bash","label":"npm"},{"cmd":"yarn add vite-multiple-assets","lang":"bash","label":"yarn"},{"cmd":"pnpm add vite-multiple-assets","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"MIME type detection for served assets","package":"mime-types","optional":false},{"reason":"Peer dependency, plugin must be used with Vite >=2.9.6","package":"vite","optional":false}],"imports":[{"note":"ESM-only; CommonJS require does not work.","wrong":"const viteMultipleAssets = require('vite-multiple-assets')","symbol":"viteMultipleAssets","correct":"import { viteMultipleAssets } from 'vite-multiple-assets'"},{"note":"Default import is available and preferred.","wrong":"","symbol":"default","correct":"import viteMultipleAssets from 'vite-multiple-assets'"},{"note":"Type import for TypeScript users.","wrong":"","symbol":"ViteMultipleAssetsOptions","correct":"import type { ViteMultipleAssetsOptions } from 'vite-multiple-assets'"}],"quickstart":{"code":"// vite.config.js\nimport { defineConfig } from 'vite';\nimport viteMultipleAssets from 'vite-multiple-assets';\n\nexport default defineConfig({\n  plugins: [\n    viteMultipleAssets([\n      'public', // default public directory\n      { dir: 'shared-assets', resolve: true },\n      { dir: 'custom-assets', resolve: false, watch: true },\n    ])\n  ]\n});\n\n// Assets in 'shared-assets/' are served at /shared-assets/ prefix (if resolve: true)\n// Assets in 'custom-assets/' are served at root without prefix (if resolve: false)\n// This example shows how to add multiple asset directories with options.","lang":"javascript","description":"Configures multiple public asset directories in Vite, including options for path resolution and file watching."},"warnings":[{"fix":"Upgrade Vite to ^2.9.6 or later.","message":"In v2.x, the plugin requires Vite >=2.9.6. Using older Vite versions causes build failures.","severity":"breaking","affected_versions":">=2.0.0 <2.9.6"},{"fix":"Use default import: import viteMultipleAssets from 'vite-multiple-assets'.","message":"The default export (viteMultipleAssets) is the recommended way. Named export is also available but may be removed in future.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Upgrade to v2.2.0 or later.","message":"Symlinks support was added in v2.2.0. Directories containing symlinks may behave unexpectedly in earlier versions.","severity":"breaking","affected_versions":"<2.2.0"},{"fix":"Upgrade to v2.2.2 or later.","message":"CSS assets from multiple directories are correctly handled only from v2.2.2 onwards. Older versions may fail to transform CSS asset URLs correctly.","severity":"breaking","affected_versions":"<2.2.2"},{"fix":"Ensure unique filenames across directories or set resolve: true.","message":"The 'resolve' option (boolean) when false prevents the plugin from prefixing asset URLs with directory name. Assets may conflict if filenames duplicate.","severity":"gotcha","affected_versions":">=2.0.0"},{"fix":"Set watch: true for directories that change frequently.","message":"The plugin does not automatically watch directories for changes unless watch: true is explicitly set. Missing watch option can cause stale assets in dev.","severity":"gotcha","affected_versions":">=2.0.0"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Upgrade Vite: npm install vite@latest","cause":"Using an older version of Vite (e.g., 2.8.x).","error":"Error: The plugin 'vite-multiple-assets' requires Vite version >=2.9.6."},{"fix":"npm install mime-types","cause":"Missing peer dependency mime-types.","error":"Cannot find module 'mime-types'"},{"fix":"Change to import statement or use dynamic import: const { viteMultipleAssets } = await import('vite-multiple-assets');","cause":"Using CommonJS require instead of ESM import.","error":"TypeError: viteMultipleAssets is not a function"},{"fix":"Check the directory path and ensure it exists.","cause":"The specified directory path is invalid or does not exist.","error":"[vite-multiple-assets] Directory 'xxx' does not exist"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}