|
1 rok temu | |
---|---|---|
.. | ||
bin | 1 rok temu | |
lib | 1 rok temu | |
node_modules | 1 rok temu | |
History.md | 1 rok temu | |
LICENSE | 1 rok temu | |
README.md | 1 rok temu | |
index.js | 1 rok temu | |
package.json | 1 rok temu |
egg developer tool, extends common-bin.
$ npm i egg-bin --save-dev
Add egg-bin
to package.json
scripts:
{
"scripts": {
"dev": "egg-bin dev",
"debug": "egg-bin debug",
"test-local": "egg-bin test",
"test": "npm run lint -- --fix && npm run test-local",
"cov": "egg-bin cov",
"lint": "eslint .",
"pkgfiles": "egg-bin pkgfiles",
"autod": "egg-bin autod",
"ci": "npm run lint && npm run autod -- --check && npm run pkgfiles -- --check && npm run cov"
}
}
All the commands support these specific v8 options:
--debug
--inspect
--harmony*
--es_staging
$ egg-bin [command] --debug --es_staging
if process.env.NODE_DEBUG_OPTION
is provided (WebStorm etc), will use it as debug options.
Start dev cluster on local
env, it will start a master, an agent and a worker.
$ egg-bin dev
--framework
egg web framework root path.--baseDir
application's root path, default to process.cwd()
.--port
server port, default to 7001
.--workers
worker process number, default to 1
worker at local mode.--sticky
start a sticky cluster server, default to false
.--typescript
/ --ts
enable typescript support, default to false
. Also support read from package.json
's egg.typescript
.--declarations
/ --dts
enable egg-ts-helper support, default to false
. Also support read from package.json
's egg.declarations
.--require
will add to execArgv
, support multiple. Also support read from package.json
's egg.require
Debug egg app with V8 Inspector Integration.
automatically detect the protocol, use the new inspector
when the targeted runtime >=7.0.0 .
if running without VSCode
or WebStorm
, we will use inspector-proxy to proxy worker debug, so you don't need to worry about reload.
$ egg-bin debug --debug-port=9229 --proxy=9999
egg-bin dev
options is accepted.--proxy=9999
worker debug proxy port.Using mocha with co-mocha to run test.
power-assert is the default assert
library, and intelli-espower-loader will be auto required.
$ egg-bin test [files] [options]
files
is optional, default to test/**/*.test.js
test/fixtures
, test/node_modules
is always exclude.test/.setup.js
If test/.setup.js
file exists, it will be auto require as the first test file.
test
├── .setup.js
└── foo.test.js
You can pass any mocha argv.
--require
require the given module--grep
only run tests matching
--timeout
milliseconds, default to 60000--full-trace
display the full stack trace, default to false.--typescript
/ --ts
enable typescript support, default to false
.--changed
/ -c
only test changed test files(test files means files that match ${pwd}/test/**/*.test.(js|ts)
)--dry-run
/ -d
whether dry-run the test command, just show the command--espower
/ -e
whether auto require intelli-espower-loader(js) or espower-typescript(ts) for power-assert, default to true
.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 egg-bin test
And the reporter can set by the TEST_REPORTER
env, default is spec
.
TEST_REPORTER=doc egg-bin test
The test timeout can set by TEST_TIMEOUT
env, default is 60000
ms.
TEST_TIMEOUT=2000 egg-bin test
Using [nyc] or [c8] to run code coverage, it support all test params above.
Coverage reporter will output text-summary, json and lcov.
You can pass any mocha argv.
-x
add dir ignore coverage, support multiple argv--prerequire
prerequire files for coverage instrument, you can use this options if load files slowly when call mm.app
or mm.cluster
--typescript
/ --ts
enable typescript support, default to false
, if true, will auto add .ts
extension and ignore typings
and d.ts
.--nyc
nyc instruments passthrough. you can use this to overwrite egg-bin's default nyc instruments and add additional ones.
> if you want to add addtional nyc
reporters, you need to use this rather than add reporter
key in .nycrc
because:
> - when same key exists in .nycrc
and cmd instruments, nyc prefers instrument.
> - egg-bin have some default instruments passed to nyc like -r
and --temp-directory
> - egg-bin cov --nyc="-r teamcity -r text"
--c8
c8 instruments passthrough. you can use this to overwrite egg-bin's default c8 instruments and add additional ones.
> - egg-bin have some default instruments passed to c8 like -r
and --temp-directory
> - egg-bin cov --c8="-r teamcity -r text" --c8-report=true
--c8-report
use c8 to report coverage not nyc, c8 uses native V8 coverage, make sure you're running Node.js >= 10.12.0, default to false
.
also support all test params above.
You can set COV_EXCLUDES
env to add dir ignore coverage.
$ COV_EXCLUDES="app/plugins/c*,app/autocreate/**" egg-bin cov
Generate pkg.files
automatically before npm publish, see ypkgfiles for detail
$ egg-bin pkgfiles
Generate pkg.dependencies
and pkg.devDependencies
automatically, see autod for detail
$ egg-bin autod
You maybe need a custom egg-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 has provide a useful security scan feature.
This example will show you how to add a new NspCommand
to create a new egg-bin
tool.
const EggBinCommand = require('egg-bin');
class MyEggBinCommand extends EggBinCommand {
constructor(rawArgv) {
super(rawArgv);
this.usage = 'Usage: egg-bin [command] [options]';
// load directory
this.load(path.join(__dirname, 'lib/cmd'));
}
}
module.exports = MyEggBinCommand;
const Command = require('egg-bin').Command;
class NspCommand extends Command {
* run({ cwd, argv }) {
console.log('run nsp check at %s with %j', cwd, argv);
}
description() {
return 'nsp check';
}
}
module.exports = NspCommand;
#!/usr/bin/env node
'use strict';
const Command = require('..');
new Command().start();
$ my-egg-bin nsp
run nsp check at /foo/bar with {}
atian25 |
fengmk2 |
popomore |
whxaxes |
dead-horse |
hyj1991 |
---|---|---|---|---|---|
ngot |
waitingsong |
snyk-bot |
BiosSun |
luckydrq |
stormslowly |
ZYSzys |
angleshe |
ahungrynoob |
yinseny |
mansonchor |
okoala |
This project follows the git-contributor spec, auto updated at Wed Feb 16 2022 22:55:56 GMT+0800
.