npm install debugs -g
- No more remember debug scopes.
- Choose debug scopes on
debugs
with keyboard. - Loaded from
package.json
and subdirectories. - Replace
DEBUG=debug:*
toDEBUG=${debugs -v}
. - Configure bash/zsh/shell export by typing
debugs init
. - See flatten debugs options over subdirectories.
Use debug for logging.
peerDependencies
debug
must be installed.
// Basic use of debug package.
const debug_api = require('debug')('api')
const debug_api_cache = require('debug')('api:cache')
// outputs only if environment variable DEBUG has 'api' scope.
debug_api('api.validate %O', doSomething())
/*
* outputs only if environment variable DEBUG has
* 'api:cache' or 'api:*' or 'api*'
* scope.
*/
debug_db('api.cache.validate %O', doSomething())
Add debug namespace items on package.json
.
{
"name": "example",
"version": "1.0.0",
"main": "index.js",
"debugs": [
"api",
"api:cache"
]
}
Type debugs
will show below.
? DEBUG=
❯ ◯ api
◯ api:cache
Press <space> to select, <a> to toggle all, <i> to inverse selection
Choose any and press enter(return).
? DEBUG=
◯ api
❯◉ api:cache
? DEBUG= api:cache
$
It's done. Apply changes by $ DEBUG=$(debugs -v) npm start
or
// any-file.js
// will load package.json at project directory root.
require('debugs/init')
You may add
.debugs
to.gitignore
.
Running debugs
with
- option
--c
,-v
andvalue
will partial outputapi,api:cache
. - option
--init
,-i
andinit
will full outputexport DEBUG=api,api:cache
.
Edit start script to pre-apply debug values,
"scripts": {
"start": "DEBUG=$(debugs -v) node index.js",
},
# DEBUG=$(debugs -v) nodemon index.js
prestart script either.
"scripts": {
"prestart": "$(debugs init)",
"start": "node index.js"
}
Without global install:
# shell
$ npm install --save-dev debugs
# package.json
"scripts": {
"start": "DEBUG=$(node ./node_modules/debugs -v) node index.js",
"debug": "node ./node_modules/debugs"
}
# shell
$ npm run debug
Include other json file or subdirectories.
{
"name": "example",
"version": "1.0.0",
"main": "index.js",
"debugs": [
"api",
"api:cache",
"lib/something/package.json"
]
}
NEW Group all peer debugs into one state over subdirectories. (flatten)
.
├── package.json
├── peer1
│ └── package.json
└── peer2
├── package.json
└── peer2a
└── package.json
Only one .debugs
root state file will be saved, and readable from any current working directory.
- Jin Lee
- MIT