4.0 Milestone
Feature
- [x] Support TypeScript by default
- [x] https://github.com/eggjs/koa/pull/5
- [x] @eggjs/core https://github.com/eggjs/egg-core/pull/265
- [x] https://github.com/eggjs/egg-utils/pull/21
- [x] @eggjs/router https://github.com/eggjs/egg-router/pull/10
- [x] https://github.com/eggjs/egg/pull/5328
- [x] refactor egg with ts https://github.com/eggjs/egg/pull/5328
- [x] refactor tegg plugin to support egg v4
- [x] use tegg by default
- [x] https://github.com/eggjs/egg-schedule/pull/62
- [x] better config define for TypeScript, e.g.: https://github.com/toeverything/AFFiNE/blob/canary/packages/backend/server/src/core/doc/config.ts#L55
- [x] Support cjs and esm both https://github.com/eggjs/egg/issues/5257
- [x] Support Node >= 18.19.0 (diagnostics_channel.subscribe required)
https://nodejs.org/api/esm.html#importmetaresolvespecifier
import.meta.resolverequired >= 18.19.0 - [x] Only support Windows >= 10
- [x] urllib@4 and undici@6 https://github.com/node-modules/urllib/pull/514
- [ ] Better Single Process In Docker
- [x] Async Config Support
- [x] https://github.com/eggjs/egg-core/pull/272
- [x] Use zod to parse Config and enable snapshot testing on config unittest
- [x] e.g.: security plugin https://github.com/eggjs/security/pull/101
- [ ] ~~CLI Plugin System~~
- [ ] Release Egg Cloud
- [ ] Support Cloudflare Workers https://developers.cloudflare.com/workers/
- [ ] esm support
- [ ] tsconfig-paths not support esm, need to use tsx on esm project
- [ ] 常用插件默认支持 tegg module 模式,让 tegg standalone 可以运行,参考 @eggjs/tegg-dal-plugin 和 @eggjs/tegg-ajv-plugin 的实现,同时兼容 egg plugin 和 tegg module。
- [ ] 根据 https://node-modules.dev/grid#install=egg@4 改造剩余的 模块
- [x] support vitest
- [x] Normal egg application and plugin
- [x] tegg modules
Breaking changes
Node.js
- [x] Drop generator function support
- [x] Drop Node.js < 20.x support, need to support CommonJS require ESM feature
- [x] Drop Node.js <= 22.18 support, need to execute TypeScript be default
- [x] ESMOnly
HttpClient
- [ ] Remove DNSCacheHttpClient
- [x] Remove HttpClientNext
- [x] upgrade urllib to v4
Logger
- [x] set
config.logger.enablePerformanceTimer = trueby default - [x] set
config.logger.enableFastContextLogger = trueby default
egg-bin
- [x] remove mochawesome reporter by default https://github.com/eggjs/egg/pull/5575
tegg
-
@Context()=>@HTTPContext() -
@Request()=>@HTTPRequest() -
@Headers()=>@HTTPHeaders() -
@Cookies()=>@HTTPCookies()
Other
- [x] Drop legacy feature.
- [x] New Docs Site.
- [x] Auto release by https://github.com/node-modules/github-actions
- [x] https://github.com/xiekw2010/egg-typebox-validate support egg v4 https://github.com/xiekw2010/egg-typebox-validate/pull/3
- [ ] Replace co-busboy https://github.com/cojs/busboy
- [ ] 升级帮助文档 https://www.yuque.com/egg/doc/v3-to-v4
- [ ] DAL 支持 sql tpl tag https://github.com/blakeembrey/sql-template-tag
Release
- ~~Maybe October, 2019~~
- ~~2022年8月8日发布全新的框架内核 Artus,发音「阿图斯」~~ 内核还是 egg-core,不会改动。
- egg 4.0:正在 ts 重构中,预计 2025年~~上半年~~11月22日发布
egg-mock / egg-bin / egg-scripts / egg-cluster drop support of Node 6.x genertor, use async function.
What is Egg Cloud, It sounds great! Can you make a briefly introduce for it ?
What is Egg Cloud, It sounds great! Can you make a briefly introduce for it ?
you could image it as an upper framework for cloud, including some powerful plugins.
cc @gxcsoccer
- ES Modules is Experimental even if Node v12.2.0. So use babel or native support?
- Support Docker. Provide docker image in docker hub when release new egg version? Provide egg's health check mechanism for docker health check?
Support ES Modules
I think is allow user to use egg module in ES Module way, but egg itself still common module by default.
Is this the Egg Cloud?
hope more better ts support
I see the keywords: Cloud Native and ServerLess.
Existing versions of typescript often fail to make breakpoints for debugging, and the new version should consider optimizing typescript support.
Better Single Process In Docker <- cool! looking forward to this =]
How long will it take for version 3.0?
CLI插件系统 是什么?想要pm2的功能,想要更简化的日志系统
How long will it take for version 3.0? @atian25
不上ts的话升级没意义,上了ts的话架构基本要重来,3.0应该是一个很远的目标了, 可笑坏了nestjs了吧
原生的typescript没有吗?没有装饰器很遗憾啊
ts重构一波啊!老弟!
any update?
any progress?
when they want start...
"Maybe October, 2019" = No deadline, even never
这项目现在还有人维护吗?feature里面的Better Single Process In Docker和我之前提的proposal https://github.com/eggjs/egg/issues/4190 描述的是一致的?何时可以支持?
维护呀 只是bug修复 功能性的就算了吧
2020年了, egg 3.0有新进展了么?😂
nestjs我也用过,个人觉得没什么太大意思,ts写起来比较啰嗦,类型对象、IOC等概念对于js开发者来说过于复杂,nodejs的开发就应该定位是小快灵(比如小程序、serverless),真要是企业级开发,我直接上spring boot了,也不会用node,后端的选择灵活性比前端大多了。nodejs中的开发es还是王道,真心希望eggjs能发展的更好,社区有良性发展(引入更多的外部参与者,而不是靠某家公司推动主导)
抱歉,还在内部孵化,有什么进展会同步的
感觉ts很有必要
nestjs我也用过,个人觉得没什么太大意思,ts写起来比较啰嗦,类型对象、IOC等概念对于js开发者来说过于复杂,nodejs的开发就应该定位是小快灵(比如小程序、serverless),真要是企业级开发,我直接上spring boot了,也不会用node,后端的选择灵活性比前端大多了。nodejs中的开发es还是王道,真心希望eggjs能发展的更好,社区有良性发展(引入更多的外部参与者,而不是靠某家公司推动主导)
但是很多前端人员对于spring boot不是很懂啊
nestjs我也用过,个人觉得没什么太大意思,ts写起来比较啰嗦,类型对象、IOC等概念对于js开发者来说过于复杂,nodejs的开发就应该定位是小快灵(比如小程序、serverless),真要是企业级开发,我直接上spring boot了,也不会用node,后端的选择灵活性比前端大多了。nodejs中的开发es还是王道,真心希望eggjs能发展的更好,社区有良性发展(引入更多的外部参与者,而不是靠某家公司推动主导)
但是现实中还是有很多中小公司拿nodejs做真正的后端开发,这时候就有了很多真正的后端需求。nestjs也支持js模式,但是大部分人使用了ts就回不去了,而且ts类型也不是强制的,因此并没有麻烦多少,反正可维护性提高了不少。我觉得前端多去接触些后端成熟理念并不是一件坏事,反而会推进nodejs后端生态的发展,毕竟nodejs的发展还是要靠jser的,而不是其他语言的开发者
nestjs我也用过,个人觉得没什么太大意思,ts写起来比较啰嗦,类型对象、IOC等概念对于js开发者来说过于复杂,nodejs的开发就应该定位是小快灵(比如小程序、serverless),真要是企业级开发,我直接上spring boot了,也不会用node,后端的选择灵活性比前端大多了。nodejs中的开发es还是王道,真心希望eggjs能发展的更好,社区有良性发展(引入更多的外部参与者,而不是靠某家公司推动主导)
但是很多前端人员对于
spring boot不是很懂啊
前端了解angular后,基本就很容易懂了
nestjs我也用过,个人觉得没什么太大意思,ts写起来比较啰嗦,类型对象、IOC等概念对于js开发者来说过于复杂,nodejs的开发就应该定位是小快灵(比如小程序、serverless),真要是企业级开发,我直接上spring boot了,也不会用node,后端的选择灵活性比前端大多了。nodejs中的开发es还是王道,真心希望eggjs能发展的更好,社区有良性发展(引入更多的外部参与者,而不是靠某家公司推动主导)
但是现实中还是有很多中小公司拿nodejs做真正的后端开发,这时候就有了很多真正的后端需求。nestjs也支持js模式,但是大部分人使用了ts就回不去了,而且ts类型也不是强制的,因此并没有麻烦多少,反正可维护性提高了不少。我觉得前端多去接触些后端成熟理念并不是一件坏事,反而会推进nodejs后端生态的发展,毕竟nodejs的发展还是要靠jser的,而不是其他语言的开发者
我的意思是,真的纯后端开发的,一般都考虑java了,很少看到有公司以node为主的后端开发,node一般是用在bff中间层开发或者简单的管理端后台服务,所以node的优势就是js的优势,轻便,快速,语法对前端人员友好,ts那套类型对象的设计模式,对于前端人员来说学习成本就有点高了