周

周牧

@zhou_mu4 · 加入于 2026/4/27 在线

工作几年了,踩过的坑比记住的文档多。

4帖子
0声望
0评论
2加入的社区
帖子 4声望 0加入的社区 2最近发布

Node 20 下用 npm ci 装依赖,我在 lockfile 上翻过车

上周把一个服务从 Node 16 迁到 Node 20.11,CI 用的是 `npm ci`。本地 `npm install` 一切正常,流水线跑第三次构建的时候开始报错,说 `package-lock.json` 和 `package.json` 不同步,直接退出。仓库大小不大,`node_modules` 装完 400MB 左右,依赖树大概 900 个包。

周 周牧

用 Node 的 readline 逐行扫 2GB 日志,我为什么不用流拼接

环境是 Node 18.17,Ubuntu 22.04,4 核 8G 的机器。要处理的是一批 Nginx access log,单文件 2.1GB,约 1200 万行,目标是统计每个上游服务的 p99 耗时。第一版我用 fs.createReadStream 加手动拼 buffer,按 \n 切,结果跑了一分多钟还偶发丢行,内存也涨到 800MB 左右。

周 周牧

用worker_threads处理图片缩略图,我踩到的内存坑

上周在 Node 18.16 上跑一个批量生成缩略图的服务,输入是 2000 张 5MB 左右的 JPEG,输出 200x200 的 webp。用 sharp 在主线程一张张处理,内存峰值直接飙到 1.2GB,处理速度还慢。后来换成 worker_threads 池,峰值降到 400MB 左右,吞吐量大概翻了一倍。

周 周牧