{"id":21967,"library":"rollup-plugin-copy2","title":"rollup-plugin-copy2","description":"A Rollup plugin to copy additional assets to the build directory, version 0.4.0. Unlike typical copy plugins, it does not copy by default but emits files into the Rollup bundle, making them accessible to other plugins (e.g., rollup-plugin-zip). Actual copying is handled by Rollup itself. It supports glob patterns, source-destination pairs, and an optional outputDirectory for direct disk writes. Requires Rollup >=3.20.0. Minimalistic, ESM-only, with TypeScript support.","status":"active","version":"0.4.0","language":"javascript","source_language":"en","source_url":"ssh://git@github.com/mentaljam/rollup-plugin-copy2","tags":["javascript","rollup","plugin","copy"],"install":[{"cmd":"npm install rollup-plugin-copy2","lang":"bash","label":"npm"},{"cmd":"yarn add rollup-plugin-copy2","lang":"bash","label":"yarn"},{"cmd":"pnpm add rollup-plugin-copy2","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency: requires Rollup >=3.20.0 for plugin hooks","package":"rollup","optional":false}],"imports":[{"note":"Named export, not default. ESM-only; no CommonJS support.","wrong":"import copy from 'rollup-plugin-copy2'","symbol":"copy","correct":"import { copy } from 'rollup-plugin-copy2'"},{"note":"ESM dynamic import works, but require() fails because package is ESM-only.","wrong":"const { copy } = require('rollup-plugin-copy2')","symbol":"copy","correct":"const { copy } = await import('rollup-plugin-copy2')"},{"note":"TypeScript users can import the CopyOptions type for type safety.","symbol":"CopyOptions","correct":"import type { CopyOptions } from 'rollup-plugin-copy2'"}],"quickstart":{"code":"// rollup.config.js\nimport { copy } from 'rollup-plugin-copy2'\n\nexport default {\n  input: 'src/index.js',\n  output: {\n    dir: 'dist',\n    format: 'es',\n  },\n  plugins: [\n    copy({\n      assets: [\n        'README.md',\n        ['src/data.txt', 'assets/data.txt'],\n        'node_modules/some-lib/*.css',\n      ],\n      notEmitFiles: false,\n      outputDirectory: 'additional',\n    }),\n  ],\n}","lang":"javascript","description":"Rollup configuration using copy plugin with glob, source-destination pair, and extra output directory."},"warnings":[{"fix":"Set outputDirectory to a path if you need files on disk, or use another plugin like rollup-plugin-copy (note different package).","message":"Files are not physically copied by default; they are emitted into Rollup's bundle. Use outputDirectory option to write them to disk.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Use single string glob for multiple files; for renaming, use [exactPath, destPath].","message":"Glob patterns only work when source is a single string, not in [source, dest] tuples. Tuples expect exact file paths.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Use import or dynamic import() in an ESM context. Set type: 'module' in package.json or use .mjs extension.","message":"The plugin is ESM-only and does not support require(). Using require() will throw an error.","severity":"deprecated","affected_versions":">=0.1.0"},{"fix":"Either set outputDirectory to copy to disk, or add another plugin that consumes emitted assets (e.g., rollup-plugin-zip).","message":"Files emitted by this plugin are not automatically included in the output unless downstream plugins handle them. If you only use copy without zip, you may see no output files.","severity":"gotcha","affected_versions":">=0.1.0"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Change import copy from 'rollup-plugin-copy2' to import { copy } from 'rollup-plugin-copy2'.","cause":"Attempting default import instead of named import.","error":"The requested module 'rollup-plugin-copy2' does not provide an export named 'default'"},{"fix":"Upgrade rollup to ^3.20.0 or later: npm install rollup@latest --save-dev.","cause":"Installed rollup version is too old.","error":"Error: rollup-plugin-copy2 requires Rollup >=3.20.0"},{"fix":"Use named import: import { copy } from 'rollup-plugin-copy2'.","cause":"Importing the wrong export (e.g., import * as copy from '...' then using copy()).","error":"TypeError: copy is not a function"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}