babel-plugin-captains-log
injects helpful details into console statements.
Default behavior:
- prepend console statement file & location
- add inject variable name into console statements
Transforms
function add(a = 1, b = 2) {
console.log(a); // outputs: 1
return a + b;
}
↓ ↓ ↓ ↓ ↓ ↓
function add(a = 1, b = 2) {
console.log("simple.js(2:2)", "a", a); // outputs: "simple.js(2:2)" "a" 1
return a + b;
}
See the Issues for a future features and opportunities to contribute.
This is a Babel plugin so it requires Babel v6 to run.
This module is distributed using npm which comes bundled with node:
npm install --save-dev babel-plugin-captains-log
To include the plugin in your project, create or open your .babelrc file at the root of your project. Then, add namespaces to your plugin list:
{
plugins: ["babel-plugin-captains-log"]
}
This option provides control over which console statements are adjusted. Methods is set within your .babelrc
as an array.
Default: ["debug", "error", "exception", "info", "log", "warn"]
{
plugins: [
["babel-plugin-captains-log", {
"methods": ['debug', 'info']
}]
]
}
This option provides control over which files are adjusted. Ignore Patterns is set within your .babelrc
as an array of strings.
Default: ["node_modules"]
{
plugins: [
["babel-plugin-captains-log", {
"ignorePatterns": ["node_modules", ".spec.js"]
}]
]
}
This option provides control over which files are adjusted. Ignore Patterns is set within your .babelrc
as an array of strings.
Default: "console"
{
plugins: [
["babel-plugin-captains-log", {
"loggerName": "logger"
}]
]
}
Flags are values set for all methods and are used to turn that feature on or off. Flags are not merged with defaults to allow for maximum control.
Default: true
{
plugins: [
["babel-plugin-captains-log", {
"injectVariableName": true
}]
]
}
Default: true
{
plugins: [
["babel-plugin-captains-log", {
"injectFileName": true
}]
]
}
This has a few issues with other plugins particularly react-hot-loader, as it changes method names. Also, it was written for recursion which adds too much noise to the console statement which is against this libraries purpose
Default: false
{
plugins: [
["babel-plugin-captains-log", {
"injectScope": true
}]
]
}
MIT
Thanks goes to these wonderful people (emoji key):
Kyle Welch 💻 📖 |
Maksim 🐛 |
---|
This project follows the all-contributors specification. Contributions of any kind welcome!