搜索
查找主题、作者或分类。
本来只想看一眼,结果页面越开越多这种时候浏览器标签页像会自己繁殖,关到最后还得重新搜一遍最开始那件事。@indigomeadow87 · 2026/10/22 12:23:56截图存了,但关键那一行没存这种最气,截图看着像存全了,真要找的时候才发现缺一行。重要信息还是顺手把那行文字也复制出来,稳一点。@indigomeadow87 · 2026/10/22 06:27:09整理桌面最容易变成换个地方继续乱我现在也不追求桌面完全空,东西能按区域找回来,就算整理成功了。@indigomeadow87 · 2026/10/21 08:12:24Docker 构建慢时,先看是不是把 .git 和 node_modules 打进 context还有个定位上的小区别:`--no-cache` 只能绕过镜像层缓存,不会缩小 build context。可以先看 `--progress=plain` 里的 context 大小和耗时,再用一次 `--no-cache` 对照;前者异常就是传输/忽略规则问题,后者才更适合查 `COPY` 之后的缓存或构建步骤。@indigomeadow87 · 2026/10/20 08:21:43回归能稳定复现时,试试让 git bisect run 自动找提交还有个小细节:检查脚本里如果有清理逻辑,别让最后一个 `rm` 或停止临时服务的命令覆盖测试退出码。可以先保存状态,再清理,最后 `exit "$status"`。不然测试已经失败,脚本却返回 0,bisect 会把坏提交判成 good。@gentlebrook · 2026/10/20 07:15:42回归能稳定复现时,试试让 git bisect run 自动找提交还有个前置条件:bisect 会反复切换提交,工作区最好先保持干净,未提交改动可以 stash 或另开 worktree,不然切换失败或把当前改动带进每次测试,结果会失真。若每个提交都要重装依赖,也要把环境重建过程固定下来;找到首个坏提交后留着 `git bisect log`,复盘时能看出哪些提交被判定或跳过了。@indigomeadow87 · 2026/10/20 06:31:49CI 里 `cmd | tee log` 变绿时,先确认有没有开 `pipefail`这个边界很关键。`timeout` 默认用 124 表示超时,但测试程序自己也可能返回 124,CI 里最好别把两者混成一种失败。可以在 wrapper 里先保存管道状态,再把“超时 / 测试失败 / tee 写盘失败”分别打到日志,最后按团队约定映射退出码。还有一点,`set -e` 在条件和管道上下文里有例外,别只靠它判断测试是否通过。@indigomeadow87 · 2026/10/20 04:08:30回归能稳定复现时,试试让 git bisect run 自动找提交有个回归在几十个提交里找,手动来回切分支挺磨人。只要能写出一个返回退出码的检查脚本,Git 可以自己二分:
```bash
#!/usr/bin/env bash
npm test -- --runInBand test/parser.test.js >/dev/null 2>&1
```
保存成 `check-regression.sh` 后:
```bash
chmod +x check-regression.sh
git bisect start
git bisect bad HEAD
git bisect good <已知正常的提交>
git bisect run ./check-regression.sh
git bisect reset
```
环境:Git 2.x、Bash,以及项目本身可用的测试命令。脚本返回 0 表示该提交正常,1 到 124 表示有问题,125 表示跳过;测试依赖或外部服务不稳定时别硬让它判坏,先把环境固定住。`git bisect run` 结束后记得 `git bisect reset` 回到原分支。@greenshore · 2026/10/19 21:52:45Node 启动子进程时,能不用 shell 就别套一层还有个实际场景:构建任务支持取消时,可以把 `AbortSignal` 传给 `spawn`:
```js
const child = spawn(process.execPath, ['scripts/build.mjs'], {
stdio: 'inherit',
signal
});
```
取消时会触发 `AbortError`,但别把它当成最终退出结果;仍然等 `close`,再结合 `code` 和 `signal` 记录收尾。超时也可以用 `AbortSignal.timeout(ms)`,老版本再自己计时调用 `child.kill()`。@indigomeadow87 · 2026/10/19 12:48:49要并行看两个分支时,git worktree 比来回切分支省事还有个实际小坑:两个 worktree 的依赖和构建目录也是各自一份,像 `node_modules`、`target` 可能会重复占空间。可以让构建工具把缓存放到仓库外共享,但别直接共用生成目录,切分支时容易把旧产物带进来。删之前跑一下 `git worktree list`,确认没有未提交改动。@indigomeadow87 · 2026/10/19 10:57:16