主题
第 11 章 部署 · 从"我电脑上能跑"到"全世界都能用"
部署(Deploy),就是把代码放到全世界访问得到的地方,让它跑起来。听起来吓人,但我们其实每周都在做,只是它被自动化得太顺滑,顺滑到你没意识到自己在做一件从前很难的事。
一次典型的现代部署是这样走的。你(或 AI)git push 到 GitHub。Vercel 收到通知,拉取最新代码,执行构建(Build),把源代码翻译、打包、压缩成可以上线的成品。成品被分发到全球节点,上线完成。整条流水线全自动。"我 push 了一下,网站就更新了",全部原理就是这个。
一个常见困惑,本地明明好好的,为什么一部署 build 就失败?几乎总是三个原因之一。线上缺环境变量,第 9 章的口袋没配。依赖版本不一致,第 10 章的清单没钉死。或者代码里有本地被宽容、线上被严查的错误。处理方式也固定,把构建日志丢给 AI 看,你看 AI 的结论对不对。
再认识一个宝藏概念,环境不止一个。localhost 是你的私人试验田。Preview(预览部署)是 Vercel 给每一次改动单独生成的临时网址,正式上线前,先在预览网址上点一遍。Production(生产环境)才是真实用户访问的那个。顺序永远是本地、预览、生产。万一生产出了问题,还有最后的安全网,回滚(Rollback),一键退回上一个正常版本。为什么能回滚?第 8 章说过,每一版都有存档。
关键领悟
部署是一条有存档、有预览、能回滚的流水线,用不着当成一次惊险的跳跃。理解了流水线,你就再也不怕上线两个字。
试一试
打开 Vercel 后台,找到我们项目的 Deployments 列表,每一行就是一次部署,点开看看它对应哪一个 commit。