新增 @midwayjs/skill-midway
· 阅读需 1 分钟
我们新增了 @midwayjs/skill-midway。
这个包提供两类能力:
- 把 Midway Skill 安装到项目里的 AI 工具目录
- 在本地查询 Midway 的文档、API、包信息和 changelog
我们新增了 @midwayjs/skill-midway。
这个包提供两类能力:
今天,我们正式发布 Midway 4.0。
这是一次跨度很大的版本升级。它不是一次“把版本号从 3 改成 4”的常规发布,而是一次面向未来几年 Node.js 服务研发方式的重新整理:更清晰的启动机制、更统一的函数式能力、更明确的组件边界,以及更适合现代全栈协作的开发体验。
这是 Midway 4.0 的第十个 beta 版本。
本次版本新增一次性脚本执行组件与 commander 命令行组件,并补充了相关文档说明。
新增 @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 });
}
}
更多说明请参考 单次执行组件文档。
新增 @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 组件文档。
这是 Midway 4.0 的第九个 beta 版本。
在这个版本中,我们新增了基于 piscina 的后台任务组件,支持 CPU 密集型 任务的处理,同时升级 Zod 至 v4 版本,并修复了 Swagger UI 等问题。
我们新增了 @midwayjs/piscina 组件,基于 piscina 封装,提供了多线程后台任务处理能力。这使得 Midway 应用可以轻松处理 CPU 密集型任务,而不会阻塞主线程。
你可以使用装饰器快速定义一个后台任务:
import { IPiscinaTask, PiscinaTask } from '@midwayjs/piscina';
/**
* 计算任务
*/
@PiscinaTask('calculate')
export class CalculateTask implements IPiscinaTask {
async execute(payload: { a: number; b: number; operation: 'multiply' | 'add' }) {
const { a = 0, b = 0, operation = 'multiply' } = payload || {};
if (operation === 'multiply') {
return a * b;
} else {
return a + b;
}
}
}
并在服务中调用它:
@Inject()
piscinaFramework: PiscinaFramework;
// ...
const result = await this.piscinaFramework.runTask('calculate', {
a: 10,
b: 20,
operation: 'add'
});
更多详细用法请参考 Piscina 组件文档。
我们升级了验证组件以支持 Zod v4 版本,现在你可以使用 Zod v4 的新特性来进行参数校验。
displayOptions 渲染字符串的问题