跳到主要内容

Release 3.12.0

· 阅读需 3 分钟
Harry Chen

升级请参考 如何更新 Midway 中描述,请不要单独升级某个组件包。

在经过了几个月的努力更新之后,Midway 迎来了 3.12 版本,这是一个改动比较大的版本。

Breaking

从 v3.12.0 开始,Midway 移除了 Node.js v14 的 CI,原因请参考 这里

Features

1、ESM 的支持

从 v3.12.0 开始,midway 支持创建 ESModule 项目,使用时和传统 CJS 项目会有所不同,由于时间紧迫,我们没有针对所有的组件进行测试,如有兼容性问题,请提交 issue。

此外,由于原有的工具体系已经无法很好的兼容 ESM 环境,为了减少维护成本,我们启用了一套全新的工具链,后续普通 CJS 项目也会统一到这一套上来。

更多细节请查看 ESM 文档

2、FaaS 架构变更

从 v3.12.0 开始,Midway FaaS 使用全新的一套架构支持现有的 Serverless 平台,这一部分后续将会在文档中体现。

主要的变化:

  • Midway 不再提供 “应用部署到弹性容器” 的兼容方案,如果平台支持使用传统应用部署 Serverless 容器,可以直接使用标准项目部署
  • Midway 不再提供 f.yml 的维护工作,也不再提供部署功能,仅提供将现有函数信息写入平台配置的能力,所有的函数部署将由平台自己的工具进行部署
  • 移除了原有通过 @midwayjs/serverless-app 启动和开发的模式,作为替代,将使用 @midwayjs/fc-starter 来进行开发

其他的一些变化

  • 1、添加了 ctx.getApp() 方法,可以从 ctx 拿到自己 app,打通了整条从 framework,到 app 和 ctx 的链路

  • 2、core 中的 httpClient 现在支持了所有的 http method

  • 3、增加了一个内部跳转 URL 的 api,ctx.forward

  • 4、IoC 容器增加了一个获取对象作用域的 API,container.getInstanceScope(xxx)

依赖更新

具体可以查看 Changelog