A Rollup plugin to delete files and folders during the build process. This is
a fork of the excellent rollup-plugin-delete
. The changes are:
-
Convert to Typescript. The previous version produces
TS2349
even though the created type declaration file and the generated type declaration file are more or less the same. -
Removing
del
, which depends on outdated versions ofglobby
andrimraf
.
This plugin is useful when you want to clean dist
or other folders and files
before bundling. Targets use minimatch
pattern matching, so
review the documentation for patterns.
# pnpm
pnpm install -D @kineticcafe/rollup-plugin-delete
# yarn
yarn add -D @kineticcafe/rollup-plugin-delete
# npm
npm install -D @kineticcafe/rollup-plugin-delete
// rollup.config.js
import { del } from '@kineticcafe/rollup-plugin-delete'
export default {
input: 'src/index.js',
output: {
file: 'dist/app.js',
format: 'cjs',
},
plugins: [del({ targets: 'dist/*' })],
}
You can also remove files after the bundle has been written by changing the
hook
:
// vite.config.ts
import * as path from 'node:path'
import { defineConfig } from 'vite'
import { del } from '@kineticcafe/rollup-plugin-delete'
const deleteIndexHtml = () =>
del({
targets: path.resolve(__dirname, 'dist/index.html'),
hook: 'writeBundle',
})
export default defineConfig({
plugins: [deleteIndexHtml()],
})
Name | Type | Default | Purpose |
---|---|---|---|
targets |
string | string[] |
[] | A string or an array of patterns of files and folders to be deleted. |
verbose |
boolean |
false |
Output removed files and folders to console. Default is false . |
hook |
string |
buildStart |
The Rollup hook the plugin should use. |
runOnce |
boolean |
false |
Delete items once. Useful in watch mode. |
dryRun |
boolean |
false |
Does not remove the files, but reports what would be removed. Implies verbose: true . |
concurrency |
number |
Infinity |
Concurrency limit. Minimum 1 . |
cwd |
string |
process.cwd |
The current working directory in which to search. |
All other options are inherited from globby
, but expandDirectories
,
onlyFiles
, and followSymbolicLinks
default to false
.
del({ targets: 'dist/*' })
del({ targets: ['dist/*', 'build/*'] })
del({ targets: 'dist/*', verbose: true })
del({ targets: 'dist/*', hook: 'buildEnd' })
del({ targets: 'dist/*', runOnce: true })
del({ targets: 'dist/*', dryRun: true })
Note: use
*
(wildcard character) in the pattern to show removed files.
MIT