nodinx-bin

3.3.9 • Public • Published

nodinx-bin

NPM version build status Test coverage David deps Known Vulnerabilities npm download

egg developer tool, extends common-bin.


Install

$ npm i nodinx-bin --save-dev

Usage

Add nodinx-bin to package.json scripts:

{
  "scripts": {
    "dev": "nodinx-bin dev",
    "debug": "nodinx-bin debug",
    "test-local": "nodinx-bin test",
    "test": "npm run lint -- --fix && npm run test-local",
    "cov": "nodinx-bin cov",
    "lint": "eslint .",
    "ci": "npm run lint && npm run cov"
  }
}

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 to process.cwd().
  • --port server port, default to 7001.
  • --cluster worker process number, skip this argvs will start only 1 worker, provide this without value will start cpu count worker.
  • --sticky start a sticky cluster server, default to false.

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 to test/**/*.test.js
  • test/fixtures, test/node_modules is always exclude.

auto require 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

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.

Example: Add nsp for security scan

nsp 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.

my-nodinx-bin

const EggBinCommand = require('nodinx-bin');
 
class MyEggBinCommand extends EggBinCommand {
  constructor(rawArgv) {
    super(rawArgv);
    this.usage = 'Usage: nodinx-bin [command] [options]';
 
    // load directory
    this.load(path.join(__dirname, 'lib/cmd'));
  }
}
 
module.exports = MyEggBinCommand;

NspCommand

const Command = require('nodinx-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;

my-nodinx-bin.js

#!/usr/bin/env node
 
'use strict';
const Command = require('..');
new Command().start();

Run result

$ my-nodinx-bin nsp
 
run nsp check at /foo/bar with {}

License

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i nodinx-bin

Weekly Downloads

0

Version

3.3.9

License

none

Last publish

Collaborators

  • googleyufei