unplugin-remove
Version:
Plugin to remove console.xx and debugger for Vite & Webpack & Esbuild & Rollup
158 lines (117 loc) • 2.75 kB
Markdown
# unplugin-remove
Auto remove `console[log|warn|error|info|debug]` and `debugger` in **production** mode.
<div>
<img src="https://img.shields.io/npm/dm/unplugin-remove" />
<img src="https://img.shields.io/github/last-commit/Talljack/unplugin-remove
">
<img src="https://codecov.io/gh/Talljack/unplugin-remove/graph/badge.svg?token=KI043GVTMM"/>
</div>
## Install
```bash
[npm|pnpm] i unplugin-remove -D
or
yarn add unplugin-remove -D
```
## Demo
Example: [`playground/`](./playground/)
<details>
<summary>Vite</summary><br>
```ts
// vite.config.ts
import viteRemove from 'unplugin-remove/vite'
export default defineConfig({
plugins: [
viteRemove({ /* options */ }),
],
})
```
<br></details>
<details>
<summary>Rollup</summary><br>
```ts
// rollup.config.js
import rollupRemove from 'unplugin-remove/rollup'
export default {
plugins: [
rollupRemove({ /* options */ }),
],
}
```
<br></details>
<details>
<summary>Webpack</summary><br>
```ts
// webpack.config.js
module.exports = {
/* ... */
plugins: [
process.env.MODE === 'production' ? require('unplugin-remove/webpack')({ /* options */ }) : null,
].filter(Boolean),
}
```
<br></details>
<details>
<summary>esbuild</summary><br>
```ts
// esbuild.config.js
import { build } from 'esbuild'
import esbuildRemove from 'unplugin-remove/esbuild'
build({
plugins: [esbuildRemove()],
})
```
<br></details>
<details>
<summary>Rspack (
<g-emoji class="g-emoji" alias="warning">⚠️</g-emoji>
experimental)</summary><br>
```ts
// 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(),
],
}
```
<br></details>
<details>
<summary>
Rolldown
(
<g-emoji class="g-emoji" alias="warning">⚠️</g-emoji>
experimental)
</summary>
<br>
```ts
// rolldown.config.js
import { defineConfig } from 'rolldown'
import Rolldown from 'unplugin-remove/rolldown'
export default defineConfig({
plugins: [
process.env.MODE === 'production' ? Rolldown() : null,
],
})
```
<br></details>
## Configuration
The following shows the default values of the configuration
```ts
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](./CHANGELOG.md) here.
## License
MIT License © 2022-PRESENT [Talljack](https://github.com/talljack)