npm install 和 npm ci 的区别,一半人会答成「后者快一点」。真正的区别是:npm install 有权改写 package-lock.json,npm ci 没有。本文用三个真实场景讲清这个差别为什么在 CI 里是致命的——lock 文件被镜像源来回翻转、macOS 生成的 lock 在 Linux 上缺二进制依赖、package.json 手改后 lock 静默失步——以及 yarn、pnpm 对应的命令是什么。
如果你有一个私有 GitHub 仓库存放代码和文章,但又希望文章内容公开可访问,可以通过公开镜像仓库 + GitHub Actions 自动同步来实现。本文记录了一次完整的实施过程,包括跨仓库 Token 配置、同步工作流设计和常见注意事项。
GitHub Actions 构建 Docker 镜像频繁报 No space left on device,排查发现 arm64 镜像从来没用过、基础镜像用了完整的 Debian、CJK 字体装了全套 150MB。砍掉 arm64 后构建从 28 分钟降到 10 分钟,镜像瘦身 120MB+。这篇复盘整个排查和优化过程。