Version 1.0.0
@stackline/grunt-contrib-clean
Clean files and folders
Independent maintenance of grunt-contrib-clean 2.0.1. Original authors and licenses are retained.
Installation
# Preserve existing imports with an npm alias
npm install grunt-contrib-clean@npm:@stackline/grunt-contrib-clean@1.0.0
# Or use the scoped package name in your imports
npm install @stackline/grunt-contrib-clean@1.0.0Node.js: >=12. Read the compatibility and maintenance notes before migrating.
Usage and API
The reference below may retain upstream package names. Use the alias installation above to run those imports with this Stackline release.
@stackline/grunt-contrib-clean
Independent maintenance fork of grunt-contrib-clean@2.0.1. Original API, module format, runtime dependency ranges, and supported Node.js engines are preserved.
npm install @stackline/grunt-contrib-clean
# Preserve existing imports with an npm alias:
npm install grunt-contrib-clean@npm:@stackline/grunt-contrib-clean@1.0.0
See UPSTREAM.md for the exact source and issue review, and CHANGELOG.md for focused maintenance changes. Development and release tooling runs on Node.js 24; that does not change the library runtime requirement.
Maintained by Stackline. Issues · npm.
Upstream documentation
grunt-contrib-clean v2.0.0 
Clean files and folders
Getting Started
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-contrib-clean --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-contrib-clean');
This plugin was designed to work with Grunt 0.4.x. If you're still using grunt v0.3.x it's strongly recommended that you upgrade, but in case you can't please use v0.3.2.
Clean task
Run this task with the grunt clean command.
Task targets, files and options may be specified according to the grunt Configuring tasks guide.
Due to the destructive nature of this task, always be cautious of the paths you clean.
Options
force
Type: Boolean
Default: false
This overrides this task from blocking deletion of folders outside current working dir (CWD). Use with caution.
no-write
Type: Boolean
Default: false
Will not actually delete any files or directories.
If the task is run with the --verbose flag, the task will log messages of what files would have be deleted.
Note: As this task property contains a hyphen, you will need to surround it with quotes.
Usage Examples
There are three formats you can use to run this task.
Short
clean: ['path/to/dir/one', 'path/to/dir/two']
Medium (specific targets with global options)
clean: {
build: ['path/to/dir/one', 'path/to/dir/two'],
release: ['path/to/another/dir/one', 'path/to/another/dir/two']
},
Long (specific targets with per target options)
clean: {
build: {
src: ['path/to/dir/one', 'path/to/dir/two']
}
}
"Compact" and "Files Array" formats support a few additional properties which help you deal with hidden files, process dynamic mappings and so on.
Globbing Patterns
Although documented in the Grunt Docs, here are some globbing pattern examples to achieve some common tasks:
clean: {
folder: ['path/to/dir/'],
folder_v2: ['path/to/dir/**'],
contents: ['path/to/dir/*'],
subfolders: ['path/to/dir/*/'],
css: ['path/to/dir/*.css'],
all_css: ['path/to/dir/**/*.css']
}
folder: Deletes thedir/folderfolder_v2: Deletes thedir/foldercontents: Keeps thedir/folder, but deletes the contentssubfolders: Keeps the files inside thedir/folder, but deletes all subfolderscss: Deletes all*.cssfiles inside thedir/folder, excluding subfoldersall_css: Deletes all*.cssfiles inside thedir/folder and its subfolders
Skipping Files
// Deletes all .js files, but skips min.js files
clean: {
js: ['path/to/dir/*.js', '!path/to/dir/*.min.js']
}
Options
Options can be specified for all clean tasks and for each clean:target.
####### All tasks
// Prevents all targets from deleting any files
clean: {
options: {
'no-write': true
},
build: ['dev/build'],
release: ['dist']
}
####### Per-target
// Will delete files for `build` target
// Will NOT delete files for `release` target
clean: {
build: ['dev/build'],
release: {
options: {
'no-write': true
},
src: ['dist']
}
}
Release History
- 2022-04-15 v2.0.1 Update all dependencies. Requires node.js > 12.
- 2018-09-08 v2.0.0 Update all dependencies. Drop Node.js < 6 support.
- 2017-04-12 v1.1.0 Update grunt to 1.0.0. Updates to docs and changelog. Update internal modules.
- 2016-02-15 v1.0.0 Drop support for Node.js v0.8. Grunt peer dependency tagged
>= 0.4.5. Dependency updates. - 2015-11-13 v0.7.0 Dependency updates.
- 2014-07-27 v0.6.0 Less verbose output. README updates.
- 2013-07-15 v0.5.0 Use rimraf directly, version 2.2.1 to fix issue on Windows. Add
no-writeoption to mimicgrunt.file.deletebehavior. - 2013-04-16 v0.4.1 Check if file exists to avoid trying to delete a non-existent file.
- 2013-02-15 v0.4.0 First official release for Grunt 0.4.0.
- 2013-01-18 v0.4.0rc6 Updating grunt/gruntplugin dependencies to rc6. Changing in-development grunt/gruntplugin dependency versions from tilde version ranges to specific versions.
- 2013-01-09 v0.4.0rc5 Updating to work with grunt v0.4.0rc5. Switching to
this.filesSrcAPI. - 2012-12-07 v0.4.0a Conversion to grunt v0.4 conventions. Remove Node.js v0.6 and grunt v0.3 support. Add
forceoption to bypass CWD check. - 2012-09-23 v0.3.0 Options no longer accepted from global config key.
- 2012-09-10 v0.2.0 Refactored from grunt-contrib into individual repo.
Task submitted by Tim Branyen
This file was generated on Fri Apr 15 2022 21:07:19.
Upstream issues and maintenance review
Upstream review
Exact source: grunt-contrib-clean@2.0.1, 9bd20a6effd37c37d892d227812e16c83c679651. Runtime task files match the integrity-checked upstream npm tarball byte-for-byte. Original authors and license are retained.
Issue review (2026-09-29)
- #65: Directory exclusions: Execute the upstream include/exclude directory fixtures and compare the resulting tree.
- #102: Nested config shape: Preserve Grunt source/file mapping conventions without guessing new configuration formats.
No issue response or upstream contact was made. These are scoped compatibility decisions, not claims that every reported issue is fixed.
Development maintenance
The original Grunt task fixtures and Nodeunit assertion bodies run unchanged. A small Node assert adapter preserves expected assertion counts and asynchronous done timeouts; it replaces obsolete Nodeunit/TAP dependencies. Obsolete JSHint and release-only grunt-contrib-internal tooling were removed. The current Grunt runner is development-only; package engines and runtime dependencies retain the upstream declarations. The same full fixture suite runs against an installed package archive.
Run npm ci --ignore-scripts, npm test, npm run test:package, and npm audit --audit-level=low. GitHub CI and CodeQL gate exact artifact publication with provenance and immutable release evidence.
Release changes
Stackline changes
1.0.0
- Scoped maintenance fork preserving runtime task files, dependency ranges, API and engines.
- Retained every upstream functional test assertion; modernized the test runner and removed obsolete lint/release dependencies.
- Added exact packed-consumer tests, audited CI, CodeQL, provenance and immutable artifact releases.
Release files and references
Package bytes, npm provenance and the immutable GitHub release were verified for this version. Security checks describe the reviewed release; documented compatibility risks and upstream reports are not blanket claims of resolution.