This esbuild plugin copies specified files to the output folder after the bundling process. It ensures static assets are included in the final build without interrupting or altering the main esbuild workflow.
Add a ⭐ to this repository — it motivates me a lot!
Simply install this package with your package manager.
npm install -D esbuild-plugin-file-copy
📦 other package manager
Here are examples for installing the package with other package manager.
💾 yarn
yarn add -D esbuild-plugin-file-copy
💾 pnpm
pnpm install -D esbuild-plugin-file-copy
Looks good so far 🔥 — now you have installed the latest version!
This esbuild plugin simply copies specified files to the output folder during the build process. It reads a list of file paths or patterns, then moves those files into the output directory after esbuild finishes bundling.
The plugin ensures that static assets, such as images or configuration files, are included in the final build. It’s lightweight and works without altering the bundling process itself. By automating file copying, it reduces manual steps and keeps the build process smooth and consistent.
fileCopyPlugin(options);
This function needs to be called inside the esbuild configuration in order to use this plugin. It will provide the plugin inside the build process of esbuild.
Show an example of the integration
esbuild.build({
// some esbuild configuration...
plugins: [
fileCopyPlugin(
// configure it here...
);
// more esbuild plugins here...
]
})
Default:
onEnd
An string with either the value onStart
or onEnd
.
Show an example
fileCopyPlugin({
lifecycle: "onStart"
});
See here for more about esbuild lifecycles.
Default:
undefined
A Array
of object
with the following properties:
{
from: string,
to: string
}
Any file or directory from the source path (from
key) will be copied to the target path (to
key).
The file name will be kept while copying the file from source path to target path.
Show an example
fileCopyPlugin({
inputs: [{
from: "my-lib/example.ts", // input path
to: "dist/my-lib" // copied to path
}]
});
Default:
undefined
A Array
of object
with the following properties:
{
from: string,
to: string
}
Any matching file or directory from the source path (from
key) will be copied to the target path (to
key).
The file name will be kept while copying the file from source path to target path.
This option enables the use of glob patterns. See here for more about glob patterns.
Show an example
fileCopyPlugin({
globs: [{
from: "my-lib/**/*.env", // input path
to: "dist/my-lib" // copied to path
}]
});
Type: Plugin
An instance of this plugin, that will be used by esbuild automatically.
The MIT License (MIT) - Please have a look at the License file for more details.
Want to contribute to an open-source project on GitHub but unsure where to start? Check out this comprehensive step-by-step guide on how to contribute effectively!
From forking the repository to creating pull requests, this guide walks you through every stage of the process, helping you make a successful contribution to this GitHub project. Start collaborating, learn new skills, and make an impact on this project!
See here for the contribute guide at GitHub.
GitHub @simonkovtyk