0.0.1 • Published 11 months ago

rollup-plugin-drop-console v0.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

rollup-plugin-drop-console

A rollup plugin used to drop (window.)console.* (e.g. console.log). It only processes expression. If you use console.log as a variable property or the text content of a DOM node, it will be ignored.

Installation

# pnpm
pnpm add -D rollup-plugin-drop-console

# yarn
yarn add -D rollup-plugin-drop-console

# npm
npm i -D rollup-plugin-drop-console

Usage

rollup

// rollup.config.mjs
import dropConsole from 'rollup-plugin-drop-console'

export default {
  input: ['entry.js'],
  output: {
    dir: 'dist',
    format: 'es'
  },
  plugins: [
    dropConsole({
      functions: ['log', 'info']
    })
  ]
};

We hope to remove log and info function and keep error function form our code. The above code transforms

console.log('test')

window.console.info('info')

console.error('error')

into

console.error('error')

Vite

If want to use this plugin in vite, The configuration is the same. But recommended for build mode, you maybe need use console to debug when serve mode.

// vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import dropConsole from 'rollup-plugin-drop-console'

export default defineConfig(({ command }) => {
  const isBuildCommand = command === 'build'

  const plugins = [
    vue()
  ]

  if (isBuildCommand) {
    plugins.push(
      dropConsole({
        functions: ['log', 'info']
      })
    )
  }

  return {
    plugins,
  }
})

API

OptionTypeDefaultDescription
includestring \| RegExp \| (string \| RegExp)[] \| undefined/\.(js\|ts\|jsx\|tsx)$/files to process
excludestring \| RegExp \| (string \| RegExp)[] \| undefined/node_modules/files to ignore
sourcemapboolean \| undefinedtruewhether to generate sourcemap
functionsConsoleFunction[] \| undefined['log']console functions to remove

Note: If functions is set [], no any functions will be transformed.

Types

type ConsoleFunction =
  | 'log'
  | 'error'
  | 'warn'
  | 'table'
  | 'time'
  | 'timeEnd'
  | 'timeLog'
  | 'timeStamp'
  | 'trace'
  | 'table'
  | 'info'
  | 'profile'
  | 'profileEnd'
  | 'assert'
  | 'clear'
  | 'context'
  | 'count'
  | 'countReset'
  | 'createTask'
  | 'debug'
  | 'dir'
  | 'dirxml'
  | 'group'
  | 'groupEnd'
  | 'groupCollapsed'

interface RollupPluginDropConsoleOptions {
  include?: string | RegExp | (string | RegExp)[];
  exclude?: string | RegExp | (string | RegExp)[];
  sourcemap?: boolean;
  functions?: ConsoleFunction[];
}

Feedback

If you encounter problems or have good ideas and suggestions, please report here.

License

MIT