0.15.0 • Published 2 years ago
@brunoimbrizi/vite-plugin-static-copy v0.15.0
vite-plugin-static-copy
rollup-plugin-copy for Vite with dev server support.
Note Before you use this plugin, consider using public directory or
importin JavaScript. In most cases, these will work.
Install
npm i -D vite-plugin-static-copy # yarn add -D vite-plugin-static-copyUsage
Add viteStaticCopy plugin to vite.config.js / vite.config.ts.
// vite.config.js / vite.config.ts
import { viteStaticCopy } from 'vite-plugin-static-copy'
export default {
plugins: [
viteStaticCopy({
targets: [
{
src: 'bin/example.wasm',
dest: 'wasm-files'
}
]
})
]
}For example, if you use the config above, you will be able to fetch bin/example.wasm with fetch('/wasm-files/example.wasm').
So the file will be copied to dist/wasm-files/example.wasm.
Warning
If you are using Windows, make sure to use
normalizePathafter doingpath.resolveor else.\is a escape charactor infast-globand you should use/.import { normalizePath } from 'vite' import path from 'node:path' normalizePath(path.resolve(__dirname, './foo')) // C:/project/foo // instead of path.resolve(__dirname, './foo') // C:\project\fooSee
fast-globdocumentation about this for more details.
Options
See options.ts.
Differences with rollup-plugin-copy
- Faster dev server start-up than using
rollup-plugin-copyonbuildStarthook.- Files are not copied and served directly from the server during dev to reduce start-up time.
destis relative tobuild.outDir.- If you are going to copy files outside
build.outDir, you could userollup-plugin-copyinstead. Because that does not require dev server support.
- If you are going to copy files outside
fast-globis used instead ofglobby.- Because
fast-globis used insidevite.
- Because
transformcould returnnullas a way to tell the plugin not to copy the file, this is similar to the CopyWebpackPlugin#filter option, but it expectstransformto return the original content in case you want it to be copied.transformcan optionally be an object, with ahandlerproperty (with the same signature of therollup-plugin-copytransform option) and anencodingproperty (BufferEncoding | 'buffer') that will be used to read the file content so that thehandler's content argument will reflect the correct encoding (could be Buffer);