Skip to content

Neutrino Clean Middleware

@neutrinojs/clean is Neutrino middleware for removing or cleaning build directories.

NPM version NPM downloads

By default, this plugin will remove all files inside webpack's output.path directory, as well as all unused webpack assets after every successful rebuild.

Requirements

  • Node.js 10+
  • Yarn v1.2.1+, or npm v5.4+
  • Neutrino 9
  • webpack 4

Installation

@neutrinojs/clean can be installed via the Yarn or npm clients.

Yarn

❯ yarn add --dev @neutrinojs/clean

npm

❯ npm install --save-dev @neutrinojs/clean

Usage

@neutrinojs/clean can be consumed from the Neutrino API, middleware, or presets. Require this package and plug it into Neutrino:

const clean = require('@neutrinojs/clean');

// Use with default options
neutrino.use(clean());

// Usage shows the default values of this middleware:
neutrino.use(
  clean({
    verbose: neutrino.options.debug,
    // Override pluginId to add an additional clean plugin instance
    pluginId: 'clean',
  }),
);
// Using in .neutrinorc.js
const clean = require('@neutrinojs/clean');

// Use with default options
module.exports = {
  use: [clean()],
};

// Usage shows the default values of this middleware:
module.exports = {
  use: [
    clean({
      verbose: neutrino.options.debug,
      // Override pluginId to add an additional banner plugin instance
      pluginId: 'clean',
    }),
  ],
};

Additional options can be specified to control the behavior of the underlying clean-webpack-plugin. See CleanWebpackPlugin's documentation for available options.

Clean external directories

Pass the dangerouslyAllowCleanPatternsOutsideProject: true option to remove directories outside of the project root. This is disabled by default to prevent deletion of unintended directories.

module.exports = {
  use: [
    clean({
      dangerouslyAllowCleanPatternsOutsideProject: true,
    }),
  ],
};

Customization

@neutrinojs/clean creates some conventions to make overriding the configuration easier once you are ready to make changes.

Plugins

The following is a list of plugins and their identifiers which can be overridden:

Name Description NODE_ENV
clean Removes directories before building. all

Contributing

This middleware is part of the neutrino repository, a monorepo containing all resources for developing Neutrino and its core presets and middleware. Follow the contributing guide for details.