webpack-loader-clean-pragma

Webpack loader to remove console logs and parts of codes using special comments called pragmas.

Usage no npm install needed!

<script type="module">
  import webpackLoaderCleanPragma from 'https://cdn.skypack.dev/webpack-loader-clean-pragma';
</script>

README

webpack-loader-clean-pragma

A loader that removes console.logs, console.warns, console.errors via options and any other parts of the source codes using special comments called pragmas.

Install

npm i webpack-loader-clean-pragma -D

or

yarn add webpack-loader-clean-pragma -D

Usage

On your webpack config, under modules.rules, use this like so:

{
  test: /.js/,
  exclude: /node_modules/,
  use: [
    // other loaders,
    {
      loader: 'webpack-loader-clean-pragma',
      options: {
        /*
         * Pragmas are special comments used to delete parts of the codes
         * that you don't want to be included in the build.
         * They are objects that has a start and an end.
         * This option is optional
         */
        pragmas: [
          {
            start: '/** @remove */',
            end: '/** @endremove */'
          },
          {
            start: '/** @delete */',
            end: '/** @enddelete */'
          }
        ],
        /*
         * Consoles is the option that you can specify if you want to delete
         * console.log, console.warn, and/or console.error.
         * This option is optional.
         */
        consoles: {
          logs: true,
          warns: true,
          errors: true
        }
      }
    }
  ]
}

Then somewhere in your code, you can do this:

Pragmas

/** @remove */
if (condition) {
  // some codes
}
/** @endremove */

// other codes

/** @delete */
if (condition) {
  // some codes
}
/** @enddelete */

console.log('Today is ' + new Date().toString() + '. \n' + "It's a good day.");

All console.logs, console.errors, and console.warns will be removed regardless if they are in one line or multiple lines. Note that semi-colons are required for this to work.