Skip to main content

Release 4.0.0-beta.10

· 2 minute read
Harry Chen
Maintainer of Midway

这是 Midway 4.0 的第十个 beta 版本。

本次版本新增一次性脚本执行组件与 commander 命令行组件,并补充了相关文档说明。

🚀 主要新增功能

单次执行组件(One-shot)

新增 @midwayjs/one-shot 组件,用于在应用启动后执行一次性脚本逻辑,支持在 onServerReady 生命周期中触发。

示例:

import { Configuration, Inject } from '@midwayjs/core';
import * as oneShot from '@midwayjs/one-shot';
import { Framework } from '@midwayjs/one-shot';
import { SyncUserScript } from './script/syncUser';

@Configuration({
imports: [oneShot],
})
export class MainConfiguration {
@Inject()
framework: Framework;

async onServerReady() {
await this.framework.runScript(SyncUserScript, { id: 42 });
}
}

更多说明请参考 单次执行组件文档

Commander 命令行组件

新增 @midwayjs/commander 命令行组件,提供命令注册、参数解析、上下文创建与中间件链支持,并内置基于 enquirer 的交互式提问能力。

示例:

import { Command, CommandRunner } from '@midwayjs/commander';

@Command({ name: 'hello', arguments: '<name>' })
export class HelloCommand implements CommandRunner {
async run([name]: string[]) {
return `hello ${name}`;
}
}

更多说明请参考 Commander 组件文档

🐛 修复与改进

  • 文档更新:validation 组件升级说明、one-shot 组件文档、commander 目录结构示例