Registry / devops / esbuild-copy-static-files

esbuild-copy-static-files

JSON →
library0.1.0jsnpmunverified

An esbuild plugin (v0.1.0, stable) to copy static files from a source to destination directory only when files have changed (by MD5 hash). No third-party dependencies, purely uses Node.js standard library. Primarily designed to avoid unnecessary file copies during development with live-reloading tools. Differs from alternatives like `esbuild-plugin-copy` by focusing on change detection and minimal configuration.

npm install esbuild-copy-static-files
INSTALL
IMPORT
SIG · ESBUILD-COPY-STATI
E
esbuild-copy-static-files
devopsjavascriptv0.1.0
Install
Import
Disk
Pass rate
0/ 6
Env Coverage0 / 6
glibc
1822
musl
1822
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18223 runs
build_error
glibc
node 18223 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

default
const copyStaticFiles = require('esbuild-copy-static-files')
import copyStaticFiles from 'esbuild-copy-static-files'
Package uses CommonJS; no ESM exports available. Use require() or wrap in default import if using ESM.
copyStaticFiles
import copyStaticFiles from 'esbuild-copy-static-files'
import { copyStaticFiles } from 'esbuild-copy-static-files'
Named import is incorrect; the module exports a single function as default.
esbuild plugin usage
plugins: [copyStaticFiles()]
plugins: [new copyStaticFiles()]
copyStaticFiles is a factory function, not a constructor. Do not use `new`.

Configures esbuild with the plugin to copy static files from './static' to './out', skipping '.bak' files.

const esbuild = require('esbuild'); const copyStaticFiles = require('esbuild-copy-static-files'); require('fs').writeFileSync('./static/test.txt', 'hello'); esbuild.build({ entryPoints: ['./app.js'], outfile: './out/app.js', bundle: true, plugins: [ copyStaticFiles({ src: './static', dest: './out', filter: (src) => !src.endsWith('.bak'), force: true, }), ], }).catch(() => process.exit(1)); // Verify: fs.existsSync('./out/test.txt') // true
Debug
Known issues
gotchaPlugin uses Node's fs.cpSync which is only available in Node 16.7.0+.
fix
Use Node.js 16.7.0 or higher. Check your Node version with `node --version`.
affects: >=0.1.0
gotchaThe plugin copies files synchronously; this can block the event loop during large copies.
fix
If you have many static files, consider alternative async plugins like `esbuild-plugin-copy`.
affects: >=0.1.0
gotchaThe `filter` option receives absolute paths; relative comparisons may fail.
fix
Use path.basename or path.relative for filtering instead of simple string checks.
affects: >=0.1.0
gotchaWhen `force: false` and destination exists, the operation throws even if `errorOnExist` is false (contrary to Node docs).
fix
Set `force: true` or `errorOnExist: false` explicitly to avoid errors.
affects: >=0.1.0
Errors
Common errors & fixes
TypeError: copyStaticFiles is not a function
Using named import instead of default import.
fix
Use `const copyStaticFiles = require('esbuild-copy-static-files')` or `import copyStaticFiles from 'esbuild-copy-static-files'`.
Error: ENOENT: no such file or directory, copyfile '...' -> '...'
Source directory does not exist or path is incorrect.
fix
Ensure `src` path exists relative to the build script. Use absolute paths or verify directory structure.
Error [ERR_FS_CP_FIFO_PIPE]: Cannot copy a FIFO or pipe
Filter includes a special file (FIFO/pipe) that cannot be copied.
fix
Update `filter` to exclude FIFO/pipe files: `filter: (src) => !fs.statSync(src).isFIFO()`
Upgrade
Version history
0.1.0latest on npm
Audit
Dependencies
esbuildrequiredpeer dependency required for plugin integration
Agent activity
14 hits · last 30 days
node
12
OpenAI (training)
2
Resources
esbuild-copy-static-files — npm install esbuild-copy-static-files · libregistry