babel-plugin-undebug
v3.0.0
Published
Babel plugin to remove `debug` from code
Downloads
2,090
Readme
babel-plugin-undebug
Babel plugin to remove debug
from code.
Contents
- What is this?
- When should I use this?
- Install
- Use
- API
- Syntax tree
- Types
- Compatibility
- Security
- Related
- Contribute
- License
What is this?
This package is a Babel plugin to remove debug
from code.
When should I use this?
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.
Install
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>
Use
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++;
API
This package exports no identifiers.
The default export is babelPluginUndebug
.
babelPluginUndebug
Plugin to remove debug
from code.
See Babel’s documentation on how to use Babel plugins.
Syntax tree
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
Types
This package is fully typed with TypeScript. It exports no additional types.
Compatibility
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.
Security
This package is safe.
Related
babel-plugin-unassert
— removeassert
Contribute
Yes please! See How to Contribute to Open Source.