命令行

在插件里,自定义的命令必须放在插件的 packages/server/commands/*.ts 目录下,内容如下:

1import { Application } from '@tachybase/server';
2
3export default function(app: Application) {
4  app
5    .command('echo')
6    .option('-v, --version')
7    .action(async ([options]) => {
8      console.log('Hello World!');
9      if (options.version) {
10        console.log('Current version:', await app.version.get());
11      }
12    });
13}

Command 的特殊配置

  • ipc() 当 app 运行时,命令行通过 ipc 发送指令,操作正在运行的 app 实例,未配置 ipc() 时,会新建一个应用实例,再执行操作(不会干扰正在运行的 app 实例)
  • auth() 进行数据库检验,如果数据库配置不正确,不会执行该命令
  • preload() 是否预先加载应用配置,也就是执行 app.load()

可以根据命令的实际用途进行配置,例子如下:

1app.command('a').ipc().action()
2app.command('a').auth().action()
3app.command('a').preload().action()