部署 nextjs、nuxt vue 到 Cloudflare Page 遇到的坑爹问题,时间和金钱都浪费了

124 天前
 meigesir

大家可能会说,时间和金钱都浪费了,这么大成本,为什么不在 vps 或者 Dokploy 上部署。

其实是 Cloudflare 这个菩萨太香了,几乎 0 成本服务器费用,尤其我们要多做项目,这样从成功率更容易成功,所以成本对我们很重要。万一哪个项目火了,我们可以再去宠幸那个项目。

最近使用 Cloudflare Page 部署项目,遇到部署问题,代价很大。交的学费就是,白白浪费 1 天或几天的时间,到最后还是解决不了这个部署问题,真的很抓狂。接下来我会告诉下唯一的、反直觉、速效的方案。

其实方案很简单,就是项目做一些改动,尤其大的,要 Cloudflare page 部署一次,如果是线上产品,那就直接非主分支部署,这样只会部署到 preview 分支,不会影响到线上的业务。

这样如果遇到部署的问题,解决当下的改动或最近的小改动就行了。

不这样做的代价可能就是以半天的时间为单位浪费,可能还解决不了问题,你说抓不抓狂。而我遇到了两次这样的大问题,这一次更是浪费是时间和钱财,我会告诉你具体的情况。

我这次是等项目完成之后,想一步 deploy 到 Cloudflare 成功,结果处理了一天都没解决。各种问 AI ,结果 3 分钟,加上 cursor 刚更新,新的调用计费政策,cursor o3 就耗光了一个月的额度,损失几十刀。时间和金钱都浪费了。

下面两张图是 cursor 的 o3 调用和扣费,当时就把 o3 model 禁了,用不起用不起。

最后我只能沿着 git 提交记录排查,结果最近一次成功部署在 35 次提交之前,很绝望。直接原因是引入了 shadcn-nuxt 这个库,非官方库,某种原因就是部署不了。

那只能从那个 git 提交点开始改动了,这是最笨又快速方法。毕竟这么多提交记录,变量太大了,AI 也懵逼了,我浪费了时间和 AI 费用,结果问题还是没有解决。

我上次遇到类似的问题,是部署 nextjs 项目到 Cloudflare page ,哎,结果这次是 nuxt vue 项目,我以为不一样,结果一样折磨我一天时间,最后只能回到之前的 git 提交点,一步一步几十个提交记录,再手工去搬运。

这是我遇到的 Cloudflare 的两次部署问题,耗费了大量代价:时间和金钱成本,总结出的解决方案,希望可以帮到大家避坑,谢谢~

也分享记录在了 X: https://x.com/meigesir/status/1923186773833707947

4997 次点击
所在节点    iDev
60 条回复
sdrpsps
123 天前
@meigesir 之前我也以为 Worker 只能放 API 😂,直到看见他们公众号发布了推文: https://mp.weixin.qq.com/s/QufIjZVBdTykLW_YlvOtOg
JerryZhi
123 天前
nextjs 毕竟是 vercel 家的东西,有很多特调优化可能在 cf 就是没有
meigesir
123 天前
@sdrpsps 666 ,不错👍🏻,看他们介绍,是逐步把 pages 好的一面都引入到 worker ,然后再 worker 上打造全栈应用。cf 生态越来越好了。
meigesir
123 天前
@JerryZhi 嗯,是的,但是为了省钱只能在 cf ,除非用户起来了😄
northbrunv
123 天前
真没必要吧,一台独服一个月也就几十刀贵点一百多算成人民币不到 1000 块钱,64g128g 内存 1t2t 硬盘随便造
liuhai233
123 天前
个人比较喜欢前后端分离,后端只写 api
前端无论用什么 build 成纯静态文件部署

这样无论如何都能迁移到别的地方,self host 也没任何问题
JensenQian
123 天前
cf 老板之前还和 vercel 老板吵起来过
你可以搜下
反正 双方公说公有理
ck65
123 天前
一个也许 OP 已经知道了的建议:本地用 wrangler dev 模拟环境调通了再提交乃至部署。
rizon
123 天前
@sdrpsps 我的 nextjs 项目折腾好久也没能在 CF worker 上部署成功,原因不记得了。 可能是 server action 的原因?也不想改造了。
我 vercel 一个月账单 50 多刀。
hallDrawnel
123 天前
我的第一遍阅读甚至没看懂你在说什么 LOL 。

理论上好的开发习惯是每次合并入主干都需要把部署流程跑一遍啊。尤其是项目的话,staging 分支和 production 都需要每次合入都跑部署流程。就可以及时发现问题了。
amlee
123 天前
没看到哪坑爹了,你都没说具体问题
hzzhzzdogee
123 天前
@meigesir #32 具体是什么问题呀, 加入那个包后, nuxt build 会一直失败吗
meigesir
122 天前
@northbrunv 主要这些项目没盈利,不想再搞这个成本去覆盖 0 收益的项目,已经做了 4 个小项目了,还是负收益
meigesir
122 天前
@liuhai233 嗯,这种确实比较好,但是过小的项目,尤其我这个项目基于开源改造,不能再去搞个前后端分离吧,又是工作量😅
meigesir
122 天前
@JensenQian 是的,这个关注过,之前双方在推上交战,火力很大
meigesir
122 天前
@ck65 嗯,知道的,dev 没错,错在 build 和 deploy 的时候通不过(cf)
meigesir
122 天前
@rizon 嗯,我这次是 nuxt 项目,成本这么多,你应该能赚回来吧。改造确实心累,但是真的省钱,我都做好了新项目几年内没流量,所以成本能省就省,只有域名成本最好,cf 可以满足
meigesir
122 天前
@hallDrawnel 你说的分支合并确实很好。这个小项目和分支合并没有关系,是 build 和 deploy 到 cf 上的问题,也就是代码改动的问题。
meigesir
122 天前
@amlee 大致是 deploy 到 Cloudflare 遇到的问题,因为这个可能随时会出现问题,跟 Cloudflare 平台有些关系。所以一些改动后,就要尝试 deploy 能否通过,不通过,马上解决。要不沉没成本太高。比如我这次的问题,Cloudflare build error 日志丢给 AI ,几个 AI 都解决不了(o3 、claude 、gemini 2.5 pro)。
meigesir
122 天前
@hzzhzzdogee nuxt build 没问题。但是 nuxt config 文件加入一些 shadcn 配置后,在 Cloudflare 就是 build 不行。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1132129

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX