Babel plugin to remove debug
from code.
- What is this?
- When should I use this?
- Install
- Use
- API
- Syntax tree
- Types
- Compatibility
- Security
- Related
- Contribute
- License
This package is a Babel plugin to remove debug
from code.
This package is useful when debug
is used to debug development code but can be
stripped in production.
An example is micromark
, which is a complex state machine that can be plugged
into with extensions but it’s also supposed to be small in browsers.
This package is ESM only. In Node.js (version 18+), install with npm:
npm install babel-plugin-undebug
In Deno with esm.sh
:
import babelPluginUndebug from 'https://esm.sh/babel-plugin-undebug@2'
In browsers with esm.sh
:
<script type="module">
import babelPluginUndebug from 'https://esm.sh/babel-plugin-undebug@2?bundle'
</script>
example.js
:
const debug = require('debug')('math')
let value = 1
debug('Value was %d', value)
value++
debug('Now we have %d', value)
Then (with @babel/cli
and @babel/core
installed):
babel example.js --plugins babel-plugin-undebug
Yields:
let value = 1;
value++;
This package exports no identifiers.
The default export is babelPluginUndebug
.
Plugin to remove debug
from code.
See Babel’s documentation on how to use Babel plugins.
This package operates on the Babel (JavaScript) AST.
- looks for ESM (
import
) and CJS (require
) loading'debug'
- looks for code calling that function and assigning it, whether
createDebug
(const createDebug = require('debug'), d = createDebug('math')
) or direct use (const d = require('debug')('math')
) - looks for calls of those assigned identifiers and remove whole debug calls,
so side effects (
d(value++)
) will be dropped
This package is fully typed with TypeScript. It exports no additional types.
This package is at least compatible with all maintained versions of Node.js. As of now, that is Node.js 18+. It also works in Deno and modern browsers.
This package is safe.
babel-plugin-unassert
— removeassert
Yes please! See How to Contribute to Open Source.