EnvaySoft/rollup-plugin-copy(opens in a new tab)
Language: JavaScript
Copy files and folders using Rollup
- stars
- 0
- watchers
- 1
- forks
- 4
- open issues
- 0
- Last updated
- 06/05/2025
Language: JavaScript
Copy files and folders using Rollup
Copy files and folders, with glob support. The original repository is rollup-plugin-copy.
# yarn yarn add rollup-plugin-copy -D # npm npm install rollup-plugin-copy -D
// rollup.config.js import copy from "rollup-plugin-copy"; export default { input: "src/index.js", output: { file: "dist/app.js", format: "cjs", }, plugins: [ copy({ targets: [ { src: "src/index.html", dest: "dist/public" }, { src: ["assets/fonts/arial.woff", "assets/fonts/arial.woff2"], dest: "dist/public/fonts", }, { src: "assets/images/**/*", dest: "dist/public/images" }, ], }), ], };
There are some useful options:
Type: Array | Default: []
Array of targets to copy. A target is an object with properties:
string Array): Path or glob of what to copystring Array): One or more destinations where to copystring Function): Change destination file or folder nameFunction): Modify file contentsEach object should have src and dest properties, rename and transform are optional. globby is used inside, check it for glob pattern examples.
copy({ targets: [{ src: "src/index.html", dest: "dist/public" }], });
copy({ targets: [{ src: "assets/images", dest: "dist/public" }], });
copy({ targets: [{ src: "assets/*", dest: "dist/public" }], });
copy({ targets: [ { src: ["src/index.html", "src/styles.css", "assets/images"], dest: "dist/public", }, ], });
copy({ targets: [ { src: ["assets/images/**/*", "!**/*.gif"], dest: "dist/public/images" }, ], });
copy({ targets: [ { src: "src/index.html", dest: "dist/public" }, { src: "assets/images/**/*", dest: "dist/public/images" }, ], });
copy({ targets: [{ src: "src/index.html", dest: ["dist/public", "build/public"] }], });
copy({ targets: [{ src: "src/app.html", dest: "dist/public", rename: "index.html" }], });
copy({ targets: [ { src: "assets/docs/*", dest: "dist/public/docs", rename: (name, extension, fullPath) => `${name}-v1.${extension}`, }, ], });
copy({ targets: [ { src: "src/index.html", dest: "dist/public", transform: (contents, filename) => contents.toString().replace("__SCRIPT__", "app.js"), }, ], });
Type: boolean | Default: false
Output copied items to console.
copy({ targets: [{ src: "assets/*", dest: "dist/public" }], verbose: true, });
Type: string | Default: buildEnd
Rollup hook the plugin should use. By default, plugin runs when rollup has finished bundling, before bundle is written to disk.
copy({ targets: [{ src: "assets/*", dest: "dist/public" }], hook: "writeBundle", });
Type: boolean | Default: false
Copy items once. Useful in watch mode.
copy({ targets: [{ src: "assets/*", dest: "dist/public" }], copyOnce: true, });
Type: boolean | Default: false
Copy items synchronous.
copy({ targets: [{ src: "assets/*", dest: "dist/public" }], copySync: true, });
Type: boolean | Default: true
Remove the directory structure of copied files.
copy({ targets: [{ src: "assets/**/*", dest: "dist/public" }], flatten: false, });
All other options are passed to packages, used inside:
MIT