nodinx-bin
egg developer tool, extends common-bin.
Install
$ npm i nodinx-bin --save-dev
Usage
Add nodinx-bin
to package.json
scripts:
Command
All the commands support these specific v8 options:
--debug
--inspect
--harmony*
--es_staging
$ nodinx-bin [command] --debug --es_staging
dev
Start dev cluster on local
env, it will start a master, an agent and a worker.
$ nodinx-bin dev
options
--framework
egg web framework root path.--baseDir
application's root path, default toprocess.cwd()
.--port
server port, default to7001
.--cluster
worker process number, skip this argvs will start only1
worker, provide this without value will startcpu
count worker.--sticky
start a sticky cluster server, default tofalse
.
debug
Debug egg app with V8 Inspector Integration.
$ nodinx-bin debug
test
Using mocha with co-mocha to run test.
power-assert is the default assert
library, and intelli-espower-loader will be auto required.
$ nodinx-bin test [files] [options]
files
is optional, default totest/**/*.test.js
test/fixtures
,test/node_modules
is always exclude.
test/.setup.js
auto require If test/.setup.js
file exists, it will be auto require as the first test file.
test ├── setupjs └── footestjs
options
You can pass any mocha argv.
--require
require the given module--grep
only run tests matching--timeout
milliseconds, default to 30000- see more at https://mochajs.org/#usage
environment
Environment is also support, will use it if options not provide.
You can set TESTS
env to set the tests directory, it support glob grammar.
TESTS=test/a.test.js nodinx-bin test
And the reporter can set by the TEST_REPORTER
env, default is spec
.
TEST_REPORTER=doc nodinx-bin test
The test timeout can set by TEST_TIMEOUT
env, default is 30000
ms.
TEST_TIMEOUT=2000 nodinx-bin test
cov
Using istanbul to run code coverage, it support all test params above.
Coverage reporter will output text-summary, json and lcov.
NOTE: cov
is replaced with test
at win32 system.
options
You can pass any mocha argv.
-x
add dir ignore coverage, support multiple argv- also support all test params above.
environment
You can set COV_EXCLUDES
env to add dir ignore coverage.
$ COV_EXCLUDES="app/plugins/c*,app/autocreate/**" nodinx-bin cov
pkgfiles
Generate pkg.files
automatically before npm publish, see ypkgfiles for detail
$ nodinx-bin pkgfiles
Custom nodinx-bin for your team
You maybe need a custom nodinx-bin to implement more custom features if your team has develop a framework base on egg.
Now you can implement a Command sub class to do that. Or you can just override the exists command.
See more at common-bin.
nsp for security scan
Example: Addnsp has provide a useful security scan feature.
This example will show you how to add a new NspCommand
to create a new nodinx-bin
tool.
- Full demo: my-nodinx-bin
my-nodinx-bin
const EggBinCommand = ; { superrawArgv; thisusage = 'Usage: nodinx-bin [command] [options]'; // load directory this; } moduleexports = MyEggBinCommand;
NspCommand
const Command = Command; * { console; } { return 'nsp check'; } moduleexports = NspCommand;
my-nodinx-bin.js
#!/usr/bin/env node 'use strict';const Command = ;start;
Run result
$ my-nodinx-bin nsp run nsp check at /foo/bar with {}