{"id":25271,"library":"esbuild-copy-files","title":"esbuild-copy-files","description":"esbuild-copy-files (v0.2.16) is an esbuild plugin that copies static files (like HTML, CSS, images) from source to output directory during esbuild builds. It integrates seamlessly with esbuild's plugin API, supports glob patterns for file selection, and is TypeScript-friendly with built-in types. Unlike using external copy tools, it runs within esbuild's build lifecycle, ensuring file copying happens at the right stage. Peer dependency on esbuild >= 0.14.0. The plugin is actively maintained with frequent releases.","status":"active","version":"0.2.16","language":"javascript","source_language":"en","source_url":"https://github.com/tiavina-mika/esbuild-copy-files","tags":["javascript","esbuild","copy-files","esbuild-plugin","typescript","esbuild-typescript-plugin","copy-static-files","nodejs"],"install":[{"cmd":"npm install esbuild-copy-files","lang":"bash","label":"npm"},{"cmd":"yarn add esbuild-copy-files","lang":"bash","label":"yarn"},{"cmd":"pnpm add esbuild-copy-files","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency – required for plugin API","package":"esbuild","optional":false}],"imports":[{"note":"ESM-only export; CJS require works but no default export in CJS – use .default","wrong":"const copyFiles = require('esbuild-copy-files')","symbol":"default","correct":"import copyFiles from 'esbuild-copy-files'"},{"note":"The package exports a single default function; named export copyFiles does not exist","wrong":"import { copyFiles } from 'esbuild-copy-files'","symbol":"copyFiles","correct":"import copyFiles from 'esbuild-copy-files'"},{"note":"TypeScript users should import esbuild Plugin type separately","wrong":"","symbol":"Plugin type","correct":"import type { Plugin } from 'esbuild'"}],"quickstart":{"code":"import * as esbuild from 'esbuild';\nimport copyFiles from 'esbuild-copy-files';\n\nawait esbuild.build({\n  entryPoints: ['src/index.js'],\n  bundle: true,\n  outdir: 'dist',\n  plugins: [\n    copyFiles({\n      include: ['public/**/*'],\n      exclude: ['public/templates/**'],\n      outputDir: 'dist'\n    })\n  ]\n});\nconsole.log('Build complete with static files copied.');\n// Output: dist/index.js, dist/style.css, dist/images/...","lang":"typescript","description":"Shows how to use the plugin in an esbuild build to copy files from public/ to dist/, excluding templates."},"warnings":[{"fix":"Clean outputDir before build or use a unique suffix.","message":"Plugin copies files after build finishes; may overwrite existing files if output directory isn't clean.","severity":"gotcha","affected_versions":"*"},{"fix":"Remove 'watch' and 'inline' options; use esbuild's built-in watch mode.","message":"Options 'watch' and 'inline' are no longer supported in recent versions (removed in v0.2.x).","severity":"deprecated","affected_versions":">=0.2.0"},{"fix":"Use const copyFiles = require('esbuild-copy-files').default;","message":"Default export may require .default in CJS environments.","severity":"gotcha","affected_versions":"*"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run 'npm install esbuild@latest' to upgrade esbuild.","cause":"Installed esbuild version is too old.","error":"Error: The plugin 'esbuild-copy-files' must be used with esbuild version >= 0.14.0"},{"fix":"Use 'import copyFiles from ...' (default import) instead of '{ copyFiles }'.","cause":"Misunderstood default vs named import.","error":"TypeError: copyFiles is not a function"},{"fix":"Run 'npm install esbuild-copy-files' and check import path.","cause":"Package not installed or not imported correctly.","error":"Error: Cannot find module 'esbuild-copy-files'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}