eggjs / eggjs/egg

[RFC] egg-development rethink

Open
#3,542 11 comments 0 reactions 4 assignees Claimed by @gxcsoccer View on GitHub
type: proposals
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.