https://github.com/simonkovtyk/esbuild-plugin-file-copy
The plugin copies files to the esbuild out folder, ensuring that all required files are included alongside the built code.
https://github.com/simonkovtyk/esbuild-plugin-file-copy
assets-management copy-assets copy-files esbuild esbuild-copy esbuild-plugin esbuild-plugins static-file static-file-copy static-files static-files-copy
Last synced: 6 months ago
JSON representation
The plugin copies files to the esbuild out folder, ensuring that all required files are included alongside the built code.
- Host: GitHub
- URL: https://github.com/simonkovtyk/esbuild-plugin-file-copy
- Owner: simonkovtyk
- License: mit
- Created: 2024-09-08T14:55:37.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-09-28T15:05:20.000Z (about 1 year ago)
- Last Synced: 2025-03-25T11:22:10.621Z (7 months ago)
- Topics: assets-management, copy-assets, copy-files, esbuild, esbuild-copy, esbuild-plugin, esbuild-plugins, static-file, static-file-copy, static-files, static-files-copy
- Language: TypeScript
- Homepage:
- Size: 35.2 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
File Copy Plugin
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!*
## β‘οΈ Getting started
Simply install this package with your package manager.
````shell
npm install -D esbuild-plugin-file-copy
````π¦ other package manager
Here are examples for installing the package with other package manager.
> πΎ **yarn**
> ````shell
> yarn add -D esbuild-plugin-file-copy
> ````> πΎ **pnpm**
> ````shell
> pnpm install -D esbuild-plugin-file-copy
> ````Looks good so far π₯ β now you have installed the latest version!
## π‘ Introduction
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.## π§ Usage
```typescript
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
````typescript
esbuild.build({
// some esbuild configuration...
plugins: [
fileCopyPlugin(
// configure it here...
);
// more esbuild plugins here...
]
})
````### Properties
#### ``lifecycle``
> Default: ``onEnd``
An string with either the value ``onStart`` or ``onEnd``.
Show an example
````typescript
fileCopyPlugin({
lifecycle: "onStart"
});
````[See here](https://esbuild.github.io/plugins/#concepts) for more about esbuild lifecycles.
#### ``inputs``
> Default: ``undefined``
A ``Array`` of ``object`` with the following properties:
````typescript
{
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
````typescript
fileCopyPlugin({
inputs: [{
from: "my-lib/example.ts", // input path
to: "dist/my-lib" // copied to path
}]
});
````#### ``globs``
> Default: ``undefined``
A ``Array`` of ``object`` with the following properties:
````typescript
{
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](https://www.malikbrowne.com/blog/a-beginners-guide-glob-patterns/) for more about glob patterns.
Show an example
````typescript
fileCopyPlugin({
globs: [{
from: "my-lib/**/*.env", // input path
to: "dist/my-lib" // copied to path
}]
});
````### Returns
Type: ``Plugin``
An instance of this plugin, that will be used by esbuild automatically.
## License
The MIT License (MIT) - Please have a look at the [License](https://github.com/simonkovtyk/esbuild-plugin-file-copy/blob/main/LICENSE) file for more details.
## Contributing
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 for the contribute guide at GitHub.
GitHub [@simonkovtyk](https://github.com/simonkovtyk)