Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

esbuild-plugin-clean

LinbuduLab116.9kMIT1.0.1TypeScript support: included

ESBuild plugin for cleaning up assets before building.

esbuild, ESBuild, clean, plugin

readme

esbuild-plugin-clean

ESBuild plugin for cleaning up output/assets before building.

Usage

npm install esbuild-plugin-clean --save-dev
pnpm install esbuild-plugin-clean --save-dev
yarn add esbuild-plugin-clean --save-dev
import { build } from 'esbuild';
import { clean } from 'esbuild-plugin-clean';

(async () => {
  const res = await build({
    entryPoints: ['./demo.ts'],
    bundle: true,
    outfile: './dist/main.js',
    plugins: [
      clean({
        patterns: ['./dist/*', './dist/assets/*.map.js'],
        cleanOnStartPatterns: ['./prepare'],
        cleanOnEndPatterns: ['./post'],
      }),
    ],
  });
})();

Configurations

This plugin use del under the hood, so you can easily pass del options to this plugin.

export interface CleanOptions {
  /**
   * file clean patterns (passed to `del`)
   *
   * @default: []
   */
  patterns?: string | string[];

  /**
   * file clean patterns(in onStart only) (passed to `del`)
   *
   * @default: []
   */
  cleanOnStartPatterns?: string | string[];

  /**
   * file clean patterns(in onEnd only) (passed to `del`)
   *
   * @default: []
   */
  cleanOnEndPatterns?: string | string[];

  /**
   * use dry-run mode to see what's going to happen
   *
   * this option will enable verbose option automatically
   *
   * @default: false
   */
  dryRun?: boolean;

  /**
   * extra options passed to `del`
   *
   * @default {}
   */
  options?: DelOptions;

  /**
   * execute clean sync or async (use `del` or `del.sync` for cleaning up)
   *
   * @default: true
   */
  sync?: boolean;

  /**
   * do cleaning in start / end / both
   * maybe in some strange cases you will need it ? :P
   *
   * @default: "start"
   */
  cleanOn?: 'start' | 'end' | 'both';

  /**
   * enable verbose logging to see what's happening
   *
   * @default false
   */
  verbose?: boolean;
}

changelog

CHANGELOG

Released 1.0.1

  • BugFix: Update build configuration for better CJS & ESM compat support.

Released 1.0.0

  • FEATURE: Option dryRun now will enable option verbose by default.
  • FEATURE: Add cleanOnStartPatterns and cleanOnEndPatterns options to control clean operation better.
  • CHORE: Both CJS and ESM output will be published now, as with exports field in packages.json, you will be using the ESM version by import, and CJS version by require.