2.1.0 • Published 12 months ago

@midwayjs/command-core v2.1.0

Weekly downloads
4,453
License
MIT
Repository
github
Last release
12 months ago

Command Hook Core

基于插件生命周期 + hook的内核

内核使用文档

import { CommandCore } from '@midwayjs/fcli-command-core';
const core = new CommandCore({
    config: {                   // 会挂载到 core.coreInstance.config 上
        servicePath: baseDir,
    },
    commands: ['invoke'],       // 默认命令,多级命令依次传入数组
    service: this.spec,         // 会挂载到 core.coreInstance.service 上
    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载
    options: this.argv,         // 参数,会作为第二个参数传递给插件构造函数,例如 { function: 'index' }
    log: console,               // 输出及错误捕获
    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)
});
core.addPlugin(Plugin);         // 载入插件,插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式
await core.ready();             // 等待初始化
await core.invoke();            // 执行默认命令

core.coreInstance 会作为第一个参数传递给插件的构造函数,上面挂载了各种方法及属性,详见 ./src/interface/commandCore.ts ICoreInstance

options 作为第二个参数传递给插件构造函数

插件开发文档

提供了 BasePlugin 插件基类,可以继承此基类编写插件

import BasePlugin from 'command-core/lib/plugin';
class Plugin extends BasePlugin {
    provider = 'test'                      // provider,在插件加载时会比对provider,如果存在此属性并且与配置的provider不相同,则不加载
    commands = {                           // 命令列表
        invoke: {                          // 命令,例如 f invoke
            usage: 'test provider invoke', // 使用提示
            lifecycleEvents: ['one', 'two']// 生命周期,在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发
        }
    }
    hooks = { // hook采用 prefix:command:lifesycle 的形式,prefix 包含 before和after,分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的,如果hooks中不存在对应的钩子,则会跳过此生命周期
        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async
        'invoke:one': async () => { this.core.cli.log('invoke:one'); },
        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },
        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },
        'invoke:two': () => { this.core.cli.log('invoke:two'); },
        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },
    }

    async asyncInit() {
        // 可选择的同步初始化,在插件加载后调用此方法进行初始化
    }
}

export default Plugin;

插件如何进行测试?

import { CommandCore } from '@midwayjs/fcli-command-core';
const core = new CommandCore({
    provider: 'providerName',
    options: {},
    commands: ['invoke'],
    log: console
});
core.addPlugin(Plugin);         // 载入你的插件
await core.ready();             // 等待初始化
await core.invoke();            // 执行对应的命令
2.1.0

12 months ago

2.0.14-beta.4

1 year ago

2.0.14

1 year ago

2.0.14-beta.2

1 year ago

2.0.14-beta.3

1 year ago

1.3.19-beta.2

1 year ago

1.3.19-beta.1

1 year ago

1.3.17

1 year ago

1.3.18

1 year ago

1.3.19

1 year ago

2.0.3

1 year ago

2.0.2

1 year ago

2.0.5

1 year ago

2.0.4

1 year ago

2.0.6

1 year ago

1.3.17-beta.1

1 year ago

1.3.14

2 years ago

1.3.16

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

2.0.0-beta.1

2 years ago

1.3.14-beta.8

2 years ago

1.3.14-beta.9

2 years ago

1.3.14-beta.10

2 years ago

1.3.14-beta.7

2 years ago

1.3.13-beta.1

2 years ago

1.3.13-beta.2

2 years ago

1.3.13-beta.3

2 years ago

1.3.13-beta.4

2 years ago

1.3.14-beta.6

2 years ago

1.3.13

2 years ago

1.3.12

2 years ago

1.3.10

2 years ago

1.3.10-beta.1

2 years ago

1.3.5-beta.2

2 years ago

1.3.4-beta.2

2 years ago

1.3.5-beta.3

2 years ago

1.3.5

2 years ago

1.3.4

2 years ago

1.3.4-beta.1

2 years ago

1.3.3

2 years ago

1.3.1-beta.1

2 years ago

1.3.1

2 years ago

1.2.95-beta.10

2 years ago

1.2.95-beta.12

2 years ago

1.2.95-beta.11

2 years ago

1.2.95-beta.13

2 years ago

1.2.94-beta.2

2 years ago

1.2.93

2 years ago

1.2.96

2 years ago

1.2.97

2 years ago

1.2.94

2 years ago

1.2.95

2 years ago

1.2.95-beta.5

2 years ago

1.2.95-beta.4

2 years ago

1.2.95-beta.3

2 years ago

1.2.95-beta.2

2 years ago

1.2.95-beta.9

2 years ago

1.2.95-beta.8

2 years ago

1.2.95-beta.7

2 years ago

1.2.95-beta.6

2 years ago

1.2.96-beta.4

2 years ago

1.2.96-beta.3

2 years ago

1.2.96-beta.6

2 years ago

1.2.96-beta.5

2 years ago

1.2.96-beta.2

2 years ago

1.2.96-beta.1

2 years ago

1.2.96-beta.8

2 years ago

1.2.96-beta.7

2 years ago

1.2.96-beta.9

2 years ago

1.2.96-beta.16

2 years ago

1.2.96-beta.17

2 years ago

1.2.96-beta.12

2 years ago

1.2.96-beta.13

2 years ago

1.2.96-beta.14

2 years ago

1.2.96-beta.15

2 years ago

1.2.96-beta.10

2 years ago

1.2.96-beta.11

2 years ago

1.2.92

2 years ago

1.2.91

2 years ago

1.2.91-beta.3

2 years ago

1.2.91-beta.2

2 years ago

1.2.86

3 years ago

1.2.86-beta.2

3 years ago

1.2.86-beta.3

3 years ago

1.2.86-beta.1

3 years ago

1.2.85

3 years ago

1.2.84

3 years ago

1.2.82

3 years ago

1.2.82-beta.2

3 years ago

1.2.82-beta.1

3 years ago

1.2.79

3 years ago

1.2.79-beta.3

3 years ago

1.2.79-beta.5

3 years ago

1.2.77-beta.1

3 years ago

1.2.76-beta.6

3 years ago

1.2.76

3 years ago

1.2.76-beta.5

3 years ago

1.2.76-beta.4

3 years ago

1.2.76-beta.3

3 years ago

1.2.76-beta.2

3 years ago

1.2.73

3 years ago

1.2.72

3 years ago

1.2.69

3 years ago

1.2.69-beta.1

3 years ago

1.2.68

3 years ago

1.2.68-beta.1

3 years ago

1.2.65

3 years ago

1.2.54

3 years ago

1.2.51

3 years ago

1.2.50-beta.3

3 years ago

1.2.51-beta.2

3 years ago

1.2.50-beta.4

3 years ago

1.2.50-beta.1

3 years ago

1.2.50-beta.2

3 years ago

1.2.51-beta.1

3 years ago

1.2.50-beta.5

3 years ago

1.2.50

3 years ago

1.2.49

3 years ago

1.2.48

3 years ago

1.2.48-beta.13

3 years ago

1.2.48-beta.12

3 years ago

1.2.48-beta.10

3 years ago

1.2.48-beta.2

3 years ago

1.2.47-beta.2

3 years ago

1.2.46

3 years ago

1.2.47-beta.1

3 years ago

1.2.45

3 years ago

1.2.45-beta.2

3 years ago

1.2.44

3 years ago

1.2.45-beta.1

3 years ago

1.2.43-beta.15

3 years ago

1.2.43-beta.14

3 years ago

1.2.43-beta.12

3 years ago

1.2.43-beta.11

3 years ago

1.2.43-beta.10

3 years ago

1.2.43-beta.8

3 years ago

1.2.43-beta.7

3 years ago

1.2.43-beta.9

3 years ago

1.2.43-beta.6

3 years ago

1.2.43-beta.5

3 years ago

1.2.43-beta.4

3 years ago

1.2.43-beta.3

3 years ago

1.2.43-beta.2

3 years ago

1.2.42-beta.4

3 years ago

1.2.42-beta.5

3 years ago

1.2.42-beta.3

3 years ago

1.2.42-beta.1

3 years ago

1.2.42-beta.2

3 years ago

1.2.41

3 years ago

1.2.41-beta.6

3 years ago

1.2.41-beta.7

3 years ago

1.2.41-beta.2

3 years ago

1.2.41-beta.1

3 years ago

1.2.41-beta.4

3 years ago

1.2.41-beta.3

3 years ago

1.2.41-beta.5

3 years ago

1.2.40-beta.2

3 years ago

1.2.40-beta.1

3 years ago

1.2.40

3 years ago

1.2.39-beta.5

3 years ago

1.2.39-beta.4

3 years ago

1.2.39-beta.2

3 years ago

1.2.39-beta.3

3 years ago

1.2.39-beta.1

3 years ago

1.2.37

3 years ago

1.2.36

3 years ago

1.2.36-beta.1

3 years ago

1.2.35

3 years ago

1.2.34-beta.2

3 years ago

1.2.34

3 years ago

1.2.34-beta.1

3 years ago

1.2.32

3 years ago

1.2.32-beta

3 years ago

1.2.31

3 years ago

1.2.31-beta

3 years ago

1.2.30-beta

3 years ago

1.2.30

3 years ago

1.2.29

3 years ago

1.2.27

3 years ago

1.2.28

3 years ago

1.2.26

3 years ago

1.2.25

3 years ago

1.2.25-beta.1

4 years ago

1.2.23

4 years ago

1.2.23-beta.3

4 years ago

1.2.23-beta.2

4 years ago

1.2.23-beta.1

4 years ago

1.2.22

4 years ago

1.2.22-beta.1

4 years ago

1.2.21

4 years ago

1.2.20

4 years ago

1.2.20-beta.3

4 years ago

1.2.20-beta.5

4 years ago

1.2.20-beta.4

4 years ago

1.2.20-beta.2

4 years ago

1.2.20-beta.1

4 years ago

1.2.18

4 years ago

1.2.17

4 years ago

1.2.16

4 years ago

1.2.15

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

0.1.12

4 years ago

0.1.11

4 years ago

0.1.10

4 years ago

0.1.9

4 years ago

0.1.8

4 years ago

0.1.7

4 years ago

0.1.6

4 years ago