VPS Monitor 改造记:Token 用量 + 访问分析 + GA 风格 UI

第 4 页:踩过的坑

坑 1:Turbopack 的 fs 静态分析

问题:fs.existsSync(变量) 会让 Turbopack 把整个项目打包,构建失败。

解决:加注释 /*turbopackIgnore: true*/

fs.existsSync(/*turbopackIgnore: true*/ filePath)

坑 2:geoip-lite 的 /ROOT 大写路径 Bug

问题:Turbopack 把 geoip-lite 内联进 chunk,数据文件路径被硬编码成大写 /ROOT/...,运行时报 ENOENT。

解决:用 eval("require") 绕开静态分析:

const req = eval("require");
const geoip = req("geoip-lite");

坑 3:PM2 进程打架

问题:手动 kill 掉 3003 后,PM2 立刻自动重启,while kill 循环导致 PID 疯狂递增。

解决:统一用 PM2 管理:

/root/.nvm/versions/node/v24.21.0/bin/pm2 restart vps-monitor

坑 4:bash 转义崩溃

问题:在 bash -c '...' 里写含单引号、反引号、SQL 的长文本,shell 解析崩溃。

解决:改用 Python heredoc 写文件:

python3 << 'PYEOF'
content = r'''...'''
open(path, "w").write(content)
PYEOF

坑 5:pnpm vs npm

问题:项目用 pnpm 管理,用 npm 装依赖会破坏 node_modules 结构。

解决:始终用 pnpm add。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注