{"id":22810,"library":"vite-plugin-replace-files","title":"vite-plugin-replace-files","description":"Vite plugin that replaces files during build with other files, useful when simple string replacement is insufficient (e.g., swapping entire configuration or environment files). Current stable version is 1.1.4, released with support for Vite 3 through 8. It ships TypeScript types. Key differentiators: operates at file level rather than string substitution, works with Vite's build pipeline, and is lightweight with no runtime dependencies. Frequent releases to keep peer dependency compatibility with Vite versions.","status":"active","version":"1.1.4","language":"javascript","source_language":"en","source_url":"ssh://git@github.com/elwin013/vite-plugin-replace-files","tags":["javascript","vite-plugin","typescript"],"install":[{"cmd":"npm install vite-plugin-replace-files","lang":"bash","label":"npm"},{"cmd":"yarn add vite-plugin-replace-files","lang":"bash","label":"yarn"},{"cmd":"pnpm add vite-plugin-replace-files","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"Package exports a default function, not a named export. TypeScript users can do 'import replaceFiles from ...' with esModuleInterop or use 'import replaceFiles = require(...)' for CJS.","wrong":"import { replaceFiles } from 'vite-plugin-replace-files'","symbol":"default","correct":"import replaceFiles from 'vite-plugin-replace-files'"},{"note":"Options type is exported as a named type. Use type-only import to avoid bundling runtime code.","wrong":"import { ReplaceFilesOptions } from 'vite-plugin-replace-files'","symbol":"ReplaceFilesOptions","correct":"import type { ReplaceFilesOptions } from 'vite-plugin-replace-files'"},{"note":"Also exported as a named type for configuring individual file replacements.","wrong":"import { ReplacementRule } from 'vite-plugin-replace-files'","symbol":"ReplacementRule","correct":"import type { ReplacementRule } from 'vite-plugin-replace-files'"}],"quickstart":{"code":"import { defineConfig } from 'vite';\nimport path from 'path';\nimport replaceFiles from 'vite-plugin-replace-files';\n\nexport default defineConfig({\n  plugins: [\n    replaceFiles([\n      {\n        file: path.join('src', 'env.ts'),\n        replacement: path.join('conf', 'env.ts'),\n      },\n    ]),\n  ],\n});","lang":"typescript","description":"Basic setup: replace 'src/env.ts' with 'conf/env.ts' during build."},"warnings":[{"fix":"Ensure replaceFiles is the first plugin in the plugins array.","message":"Plugin order matters: must be placed before other plugins that rely on the replaced files.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Always use path.join or absolute paths, e.g., path.join(__dirname, 'src', 'env.ts').","message":"Paths are resolved relative to the project root; absolute paths or path.join usage is recommended.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Verify the replacement path exists or add a check before the build.","message":"Replacement file must exist at build time; no error if missing, just no replacement.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Update to Vite 4+ or stay on older plugin version if using Vite 3.","message":"Vite 3 support is being dropped; check peer dependencies for your Vite version.","severity":"deprecated","affected_versions":">=1.1.4"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Use 'import replaceFiles from 'vite-plugin-replace-files'' instead of destructuring.","cause":"Named import instead of default import.","error":"TypeError: replaceFiles is not a function"},{"fix":"Run 'npm install -D vite-plugin-replace-files'.","cause":"Plugin not installed or not in node_modules.","error":"Error: Cannot find module 'vite-plugin-replace-files'"},{"fix":"Check the replacement path; ensure the file exists at build time.","cause":"Replacement file path does not exist.","error":"[vite] Internal server error: ENOENT: no such file or directory"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}