升级请参考 如何更新 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。