{"id":21070,"library":"copy-vite-plugin","title":"copy-vite-plugin","description":"A Vite plugin for copying files and directories during build, designed as a drop-in replacement for copy-webpack-plugin for projects migrating from webpack to Vite. Current version 1.0.1 (stable). It offers a simple API similar to copy-webpack-plugin, supporting glob patterns and multiple source destinations. Unlike alternatives like vite-plugin-static-copy, it aims for minimal configuration and direct compatibility with webpack's pattern syntax.","status":"active","version":"1.0.1","language":"javascript","source_language":"en","source_url":"https://github.com/WangYuLue/copy-vite-plugin","tags":["javascript","vite","vite-plugin","copy","typescript"],"install":[{"cmd":"npm install copy-vite-plugin","lang":"bash","label":"npm"},{"cmd":"yarn add copy-vite-plugin","lang":"bash","label":"yarn"},{"cmd":"pnpm add copy-vite-plugin","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"The main export is a named export 'copy', not a default export. Also works with require: const { copy } = require('copy-vite-plugin')","wrong":"import copy from 'copy-vite-plugin'","symbol":"copy","correct":"import { copy } from 'copy-vite-plugin'"},{"note":"Type import is optional; functional plugin does not require types at runtime.","wrong":"import { CopyOptions } from 'copy-vite-plugin'","symbol":"CopyOptions","correct":"import type { CopyOptions } from 'copy-vite-plugin'"},{"note":"TypeScript type for pattern objects; can be used to type array elements.","wrong":null,"symbol":"Pattern","correct":"import type { Pattern } from 'copy-vite-plugin'"}],"quickstart":{"code":"import { defineConfig } from 'vite';\nimport { copy } from 'copy-vite-plugin';\n\nexport default defineConfig({\n  plugins: [\n    copy({\n      pattern: [\n        { from: 'src/images', to: 'images' },\n        { from: 'public/favicon.ico', to: 'favicon.ico' },\n      ],\n    }),\n  ],\n});","lang":"typescript","description":"Basic setup: copies a directory and a file from source to output during build."},"warnings":[{"fix":"Use 'pattern' instead of 'patterns' in the options object.","message":"The 'pattern' key is singular; using 'patterns' (as in copy-webpack-plugin) will silently be ignored.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use absolute paths or paths relative to project root.","message":"Relative paths in 'from' and 'to' are resolved relative to the project root (process.cwd()), not the config file location.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use 'vite-plugin-static-copy' if you need copy during dev with HMR.","message":"Plugin only runs during build (not dev server) by default; files copied are not watched.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use full paths or rely on root-relative paths.","message":"The 'context' option from copy-webpack-plugin is not supported; use absolute paths instead.","severity":"deprecated","affected_versions":">=1.0.0"},{"fix":"Specify exact paths or use another plugin like 'vite-plugin-static-copy' that supports globs.","message":"Glob patterns in 'from' are not supported; use exact file or directory paths.","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":"Use 'import { copy } from 'copy-vite-plugin' instead of 'import copy from 'copy-vite-plugin'.","cause":"Importing using default import instead of named import.","error":"TypeError: copy is not a function"},{"fix":"Rename 'patterns' to 'pattern' in the plugin options.","cause":"Options object has 'patterns' key instead of 'pattern'.","error":"Pattern is not iterable"},{"fix":"Ensure paths are relative to project root or use absolute paths.","cause":"The source file or directory does not exist, or path is relative and resolved incorrectly.","error":"ENOENT: no such file or directory, copyfile '...' -> '...'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}