Delete files and folders
Latest commit b33ee97 Oct 26, 2016 @sindresorhus pin XO
Failed to load latest commit information.
.editorconfig tweaks Dec 6, 2015
.gitattributes init Jun 21, 2014
.gitignore init Jun 21, 2014
.travis.yml tweaks Jan 7, 2016
index.js fix XO lint issue Jun 16, 2016
license init Jun 21, 2014
package.json pin XO Oct 26, 2016 add XO badge Oct 26, 2016
test.js fix XO lint issue Jun 16, 2016

del Build Status XO code style

Delete files and folders using globs

Pretty much rimraf with a Promise API and support for multiple files and globbing. It also protects you against deleting the current working directory and above.

🔥 Want to strengthen your core JavaScript skills and master ES6?
I would personally recommend this awesome ES6 course by Wes Bos.


$ npm install --save del


const del = require('del');

del(['tmp/*.js', '!tmp/unicorn.js']).then(paths => {
    console.log('Deleted files and folders:\n', paths.join('\n'));


The glob pattern ** matches all children and the parent.

So this won't work:

del.sync(['public/assets/**', '!public/assets/goat.png']);

You have to explicitly ignore the parent directories too:

del.sync(['public/assets/**', '!public/assets', '!public/assets/goat.png']);

Suggestions on how to improve this welcome!


del(patterns, [options])

Returns a promise for an array of deleted paths.

del.sync(patterns, [options])

Returns an array of deleted paths.


Type: string, array

See supported minimatch patterns.


Type: object

See the node-glob options.


Type: boolean
Default: false

Allow deleting the current working directory and outside.


Type: boolean
Default: false

See what would be deleted.

const del = require('del');

del(['tmp/*.js'], {dryRun: true}).then(paths => {
    console.log('Files and folders that would be deleted:\n', paths.join('\n'));


See del-cli for a CLI for this module and trash-cli for a safe version that is suitable for running by hand.


MIT © Sindre Sorhus