fix(loader-server): a watch restart reuses the file list from startup
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 新手友好度
- 78/100
- Issue 类型
- 缺陷
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- bun, typescript
- 领域
- backend
调研方向
阅读 apps/server/src/server.ts,重点查看链接行中 startWatch 和 runWorker 周围的设置。检查构建文件夹的文件列表和 main.js 路径是如何计算的,然后追踪 watch 重启时如何将它们传给 worker。完成标准是每次重启都使用当前文件,并且缺少 main.js 时 watcher 不会崩溃。
由索引模型根据 Issue 内容生成。
描述
Which app is this bug report for?
server
Issue description
In watch mode, getFiles(dir) and mainPath are computed once, before startWatch (server.ts#L31-L38). runWorker reuses that same paths array on every restart (server.ts#L42-L55).
Files added after startup are missing from the files map passed to main(), and deleted files are still in it. A game that loads a new asset fails until nf start is restarted by hand.
Found by reading the code path (not reproduced).
Expected: each restart gives the worker the current files of the build folder.
Suggested fix: compute paths and mainPath inside runWorker, and handle a missing main.js there without crashing the watcher.
Found during a read-only audit of main @ 044c766 (2026-11-11).
Code sample
const paths = getFiles(dir).filter(...); // computed once
const runWorker = async () => {
child = fork(..., [mainPath as string, JSON.stringify(paths)]);
};
if (watch) startWatch(dir, runWorker); // every restart reuses the same paths
Versions
- @nanoforge-dev/loader-client / @nanoforge-dev/loader-server / @nanoforge-dev/loader-website 1.7.0 (
main@ 044c766) - Bun 1.3.14
- Linux x86_64
Issue priority
Medium (should be fixed soon)
I have tested this issue on a development release
044c766
- 主要语言
- TypeScript
- 星标
- 1
- 派生
- 0
- 平均合并
- 17 小时 25 分钟
- 30 天内合并 PR
- 11
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
NanoForge-dev/Loader 的其他 Issue
-
app:client app:website enhancement refactor
难度 2/5 1-3 小时 新手友好度 72/100
NanoForge-dev/Loader#145 ·
维护者通常 1 天内回复
-
chore(loader-client,loader-server): package.json entry points name files the build does not produce未关闭app:client app:server bug chore good first issue
难度 2/5 1-3 小时 新手友好度 78/100
NanoForge-dev/Loader#144 ·
维护者通常 1 天内回复
-
app:website bug good first issue
难度 2/5 1-3 小时 新手友好度 85/100
NanoForge-dev/Loader#141 ·
维护者通常 1 天内回复
-
app:website bug good first issue
难度 2/5 1-3 小时 新手友好度 82/100
NanoForge-dev/Loader#140 ·
维护者通常 1 天内回复
-
app:server bug
难度 2/5 1-3 小时 新手友好度 85/100
NanoForge-dev/Loader#138 ·
维护者通常 1 天内回复
查看 NanoForge-dev/Loader 的全部 Issue
相似的 Issue
-
Mend: dependency security vulnerability
难度 1/5 1-3 小时 新手友好度 65/100
fdm-monster/fdm-monster#5563 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
be-BOP-io-SA/be-BOP#2849 ·
-
难度 2/5 1-3 小时 新手友好度 79/100
维护者通常 1 天内回复
-
1️⃣ phase/under-investigation flaky/confirmed flaky/needs-decision type/bug
难度 2/5 1-3 小时 新手友好度 65/100
growilabs/growi#12246 · 3 条评论 ·
维护者通常 1 天内回复
-
🐛 The Rulekeeper - An index run that gives up on the lock ends Succeeded可能已有人在做 @github-actions 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 72/100
SSWConsulting/SSW.Rules#2809 · 1 条评论 ·
维护者通常 1 天内回复