This is a Babel macro to be used with babel-plugin-macros. By default, it'll remove all console.log
, console.warn
and console.error
calls from production
builds. Internally it uses babel-plugin-transform-remove-console.
npm install --save-dev dev-console.macro babel-plugin-macros
import console from 'dev-console.macro'
console.log('This is a', 'log message')
// Removed in production & staging builds
console.error('Nothing to see here')
// Removed in production builds
const w = console.warn.bind(console)
w("Being tricky won't help you")
// In production & staging, `w` will be defined as `function () {}`
First of all, you'll need to have "macros"
included as a Babel plugin. In some environments like react-scripts 2.0 this will already be done for you; for more details please refer to the babel-plugin-macros documentation.
If you'd like to customise this macro's behaviour in specific environments and/or exclude specific methods of console
from being removed, set the value of the remove-console
key in your babel-plugin-macros config. The default config corresponds to this:
{
"remove-console": {
"production": true,
"staging": { "exclude": ["error"] }
}
}