[RFC] egg-development rethink
- Dominant language
- TypeScript
- Stars
- 19k
- Forks
- 1.8k
- PR merge metrics
- No merged PRs in 30d
Description
## 背景
`egg-development` 的定位是开发期辅助插件。
- 之前的功能,只是局限于监控代码变更,然后重启。
- 单进程模式后,如何自重启?
- 之前的监控是依赖于 wt 模块:
- 在 docker 和 win 的某些环境下,无法监听到变更事件。之前需通过 [egg-watcher-chokida](https://github.com/eggjs/egg-watcher-chokidar) 解决。
- ignore 的实现是监控文件变更不发送重启事件,存在的问题是如果在 `app/public` 下有 node_modules 等目录,会导致内存溢出。
## 思路
### watcher
改造思路:
- 把监控变更的逻辑,移到 `egg-bin dev` 中。
- `egg-development` 仅保留需要监控的目录配置,agent 对应的 watch 功能去掉。
- `egg-development` 在启动期把合并后的配置,通过 messenger 发送给 egg-bin (parent)
- `egg-bin dev` 收到消息后,启动文件的监控功能。
需讨论:**是不是可以考虑引入 chokidar ?**
### code style check
增加一些低级错误的检查功能,如:
- `config.key` 没配置?
- 配置文件写入到了 `app/config` 目录?
这块没太想好:
- 也可以放到 lint 那边,但很多开发者是不跑 lint 的。
- 放在 `egg-bin dev` 来做?
Contributor guide
Assessment
This issue has not been assessed yet.