学习日记

记录平时学编程的笔记和心得。

用 Caddy 给后端服务配 HTTPS

Caddy 会自动向 Let's Encrypt 申请证书,到期前自己续期。配置里写上域名,再把请求反向代理到本机端口就能用;前提是域名已经解析到服务器,80 和 443 端口对外放通。WebSocket 的反向代理可以设 stream_close_delay,重载配置时已经建立的长连接不会被立刻断开。

SQLite 的 WAL 模式与在线备份

WAL 模式下读和写可以同时进行,数据库旁边会多出 -wal 和 -shm 两个文件。服务运行时要备份,用 sqlite3 的 .backup 命令就能拿到一致的副本;直接复制文件的话,要先停掉服务,三个文件一起复制。

同一份 TypeScript 代码给两套工具链编译

一份代码既要被 Babel 编译,又要通过 tsc 的严格模式检查。Babel 逐个文件转换、不做类型检查,enum、namespace 这类写法在两边的表现不一致,最后约定都不用:常量写成 as const 对象或联合类型,两边编译出来的结果一致。