1.2.41 • Published 3 years ago

@midwayjs/fcli-command-core v1.2.41

Weekly downloads
1,750
License
MIT
Repository
github
Last release
3 years ago

Command Hook Core

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

内核使用文档

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

3 years ago

1.2.43-beta.7

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

3 years ago

1.2.41-beta.4

3 years ago

1.2.41-beta.2

3 years ago

1.2.41-beta.1

3 years ago

1.2.41-beta.3

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-beta.1

3 years ago

1.2.36

3 years ago

1.2.35

3 years ago

1.2.34

3 years ago

1.2.34-beta.1

3 years ago

1.2.34-beta.2

3 years ago

1.2.33

3 years ago

1.2.33-beta.1

3 years ago

1.2.32-beta

3 years ago

1.2.32

3 years ago

1.2.31

3 years ago

1.2.31-beta

3 years ago

1.2.30

3 years ago

1.2.30-beta

3 years ago

1.2.29

3 years ago

1.2.28

3 years ago

1.2.27

3 years ago

1.2.26

4 years ago

1.2.25-beta.1

4 years ago

1.2.24-beta.1

4 years ago

1.2.25

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-beta.1

4 years ago

1.2.22

4 years ago

1.2.21

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

4 years ago

1.2.20-beta.2

4 years ago

1.2.20-beta.1

4 years ago

1.2.12

4 years ago

1.2.11

4 years ago

1.2.10

4 years ago

1.2.3

4 years ago

1.2.2

4 years ago

1.2.0

4 years ago

1.1.21

4 years ago

1.1.18

4 years ago

1.1.16

4 years ago

1.1.15

4 years ago

1.1.14

4 years ago

1.1.13

4 years ago

1.1.12

4 years ago

1.1.10

4 years ago

1.1.9

4 years ago

1.1.8

4 years ago

1.1.7

4 years ago

1.1.6

4 years ago

1.1.5

4 years ago

1.1.4

4 years ago

1.1.3

4 years ago

1.1.2

4 years ago

1.1.0

4 years ago

1.0.10

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.6-alpha.523

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

0.3.6

4 years ago

0.3.3

4 years ago

0.3.0

4 years ago

0.2.97

4 years ago

0.2.95

4 years ago

0.2.94

4 years ago

0.2.92

4 years ago

0.2.92-beta.1

4 years ago

0.2.91

4 years ago

0.2.89

4 years ago

0.2.88

4 years ago

0.2.84

4 years ago

0.2.82

4 years ago

0.2.79

4 years ago

0.2.78

4 years ago

0.2.77

4 years ago

0.2.76

4 years ago

0.2.75

4 years ago

0.2.74

4 years ago

0.2.73

4 years ago

0.2.72

4 years ago

0.2.71

4 years ago

0.2.70

4 years ago

0.2.69

4 years ago

0.2.67

4 years ago

0.2.66

4 years ago

0.2.65

4 years ago

0.2.64

4 years ago

0.2.63

4 years ago

0.2.62

4 years ago

0.2.61

4 years ago

0.2.59

4 years ago

0.2.58

4 years ago

0.2.57

4 years ago

0.2.55

4 years ago

0.2.54

4 years ago

0.2.51

4 years ago

0.2.50

4 years ago

0.2.49

4 years ago

0.2.41

4 years ago

0.2.40

4 years ago

0.2.34

4 years ago

0.2.33

4 years ago

0.2.29

4 years ago

0.2.27

4 years ago

0.2.22

4 years ago

0.2.20

4 years ago

0.2.14

4 years ago

0.2.10

4 years ago

0.2.2

4 years ago

0.2.0

4 years ago