深夜两点的代码与一碗热汤面
「世界上最遥远的距离,不是生与死,而是我在改 bug,你在睡觉,服务器在报警,而我连一碗热乎的面都吃不上。」—— 某程序员朋友圈
零、起因
凌晨 1:47,CI/CD 流水线第 23 次挂在 npm run build 上。
错误日志滚得飞快,红色的 ERR! code ELIFECYCLE 刷屏。我盯着屏幕发呆了十秒,才反应过来——不是依赖版本冲突,也不是内存溢出,是 node-sass 在 Node 18 下彻底寄了。
要不降 Node 版本?要不改 dart-sass?要不干脆把 styles 目录整个扔掉重写?
三个方案在脑子里打架,胜负手全在「明早 9 点要上线」这句死命令上。
一、外卖软件里的「配送中」
饿了。胃里像有只老鼠在啃胃壁。
打开外卖 APP,全屏「已打烊」。唯一还亮着的,是楼下那家「阿姨手工面」——距离关门还剩 13 分钟。
下楼,推门,蒸汽扑面。
「小伙子,要啥面?今晚收摊早,汤不够了。」
「番茄鸡蛋面,加俩荷包蛋,汤多一点。」
「行嘞,稀饭还是干拌?」
「汤面,趁热吃。」
厨房里铁勺撞碗的当当声,比任何白噪音都治愈。
二、那碗面
红亮的汤底漂着金黄蛋花,葱花点缀其间,面条劲道不粘连。
第一口下去,汤汁裹着淀粉滑进喉咙,咸鲜酸甜在舌尖炸开。那一刻,webpack 报错、PR 被驳回、需求文档第 17 次变更……统统滚蛋了。
阿姨一边收拾灶台一边唠嗑:
「现在的年轻人不容易,敲敲打打到这点。多吃点,撑着才有力气干活。」
我抬头,蒸汽模糊了眼镜,却看清了她鬓角几根白发。
三、代码也是面条
回工位,重启终端。
1 | # 方案二:换 dart-sass,改两行配置 |
npm run build 跑通。绿色的 Compiled successfully 像极了那碗面汤里浮着的油花——不是最完美的方案,但此刻刚好能用,且能让人活下来。
合上 PR,写上 Fix: migrate to dart-sass for Node 18 compatibility。
Slack 绿灯亮起,CI 跑过。凌晨 3:12,合入 main。
四、碎碎念
- 技术债像剩汤底,不清理迟早翻锅,但今晚先喝汤。
- 阿姨的面 18 块,我的时薪折算下来大概 3 碗半。值得。
- 下次加班带盒饭,省得阿姨操心「汤不够」。
五、尾声
推送完成,关灯,锁屏。
手机弹出一条微信——
「睡了没?刚才朋友圈发的面看着好香。早点休息,明天见。」
回完「刚合入,马上睡」,打开窗,夏夜风夹着一丝凉意钻进来。
明天又是新的 build。但今晚,我吃饱了。
配图来源:picsum.photos 随机生成,现实中那碗面早就见底了。
写于 2026-07-09 凌晨,某个还在跑流水线的夜晚。





