Skip to content

Auto remove some unused code like console and debugger

License

Notifications You must be signed in to change notification settings

Talljack/unplugin-remove

Repository files navigation

unplugin-remove

Auto remove console[log|warn|error|info|debug] and debugger in production mode.

Install

[npm|pnpm] i unplugin-remove -D

or

yarn add unplugin-remove -D

Demo

Example: playground/

Vite
// vite.config.ts
import viteRemove from 'unplugin-remove/vite'

export default defineConfig({
  plugins: [
    viteRemove({ /* options */ }),
  ],
})


Rollup
// rollup.config.js
import rollupRemove from 'unplugin-remove/rollup'

export default {
  plugins: [
    rollupRemove({ /* options */ }),
  ],
}


Webpack
// webpack.config.js
module.exports = {
  /* ... */
  plugins: [
    process.env.MODE === 'production' ? require('unplugin-remove/webpack')({ /* options */ }) : null,
  ].filter(Boolean),
}


esbuild
// esbuild.config.js
import { build } from 'esbuild'
import esbuildRemove from 'unplugin-remove/esbuild'

build({
  plugins: [esbuildRemove()],
})


Rspack ( ⚠️ experimental)
// rspack.config.js
const RspackPlugin = require('unplugin-remove/rspack').default

module.exports = {
  plugins: [
    new rspack.DefinePlugin({
      'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
    }),
    RspackPlugin(),
  ],
}


Rolldown ( ⚠️ experimental)
// rolldown.config.js
import { defineConfig } from 'rolldown'
import Rolldown from 'unplugin-remove/rolldown'

export default defineConfig({
  plugins: [
    process.env.MODE === 'production' ? Rolldown() : null,
  ],
})


Configuration

The following shows the default values of the configuration

Remove({
  // don't remove console.([log|warn|error|info|debug]) and debugger these module
  external: [],

  // remove console type of these module
  // enum: ['log', 'warn', 'error', 'info', 'debug']
  consoleType: ['log'],

  // filters for transforming targets
  include: [/\.[jt]sx?$/, /\.vue\??/],
  exclude: [/node_modules/, /\.git/]
})

CHANGELOG

You can see CHANGELOG here.

License

MIT License © 2022-PRESENT Talljack