缘起
早有耳闻cloudflare
不是凡物,不得不说其pages
大大简化了前端到部署发布流程,于是打算在把当前的nuxt3
项目部署上去,一开始都很正常,选择构建预设框架,然后接你都是默认设置即可,
然后点击开始构建
到这一步,似乎都没啥问题,该安装安装,该部署部署,但是以老衲多年牛马踩坑经验来看,这大概率是暴风雨之前的宁静,直到部署完成后打开页面一看!(恭喜!你都会抢答啦~)
我执
于是开始查资料,首先是nuxt
对 cloudflare
的部署配置,安装wrangler
后,在本地调试,发现信息:
✘ [ERROR] [node-fetch-native] Node.js compatible build of
node-fetch-nativeis being used in a non-Node.js environment. Please make sure you are using proper export conditions or report this issue to https://github.com/unjs/node-fetch-native. You can set
process.env.DISABLE_NODE_FETCH_NATIVE_WARNto disable this warning.
大概意思是在非node得环境下运行了node-fetch-native
,到这里问题已经开始有点端倪了,网上说有通过node版本解决问题的,但是通过设置.nvmrc
为本地的v18.12.1
,依然报错。
于是开始转向nitro
的部署配置,问题依旧
https://nitro.unjs.io/deploy/providers/cloudflare
没办法最后尝试将ssr配置关闭,然后可以正常访问,也就是说使用纯静态就可以正常部署,如果要ssr使用服务器渲染,则cloudflare似乎是无法支持良好的SEO,nuxt就失去了意义,目前的业务逻辑有用户内容产生,又不太适合使用generate
全部生成,那我要这铁棒还有何用?
1 | export default |
缘灭
还是不甘心,gpt跟google都翻烂了,直到看到这个帖子,似乎其他老哥也遇到过这个问题
https://stackoverflow.com/questions/67845521/nuxtjs-ssr-deployment-on-cloudflare-workers
至此我已经在这个问题上消耗了接近一天的时间,于是:世上无难事,只要肯放弃!扯呼~
顺其自然
但是问题还是要解决,如果不想在自己的服务器上浪费资源做部署,目前对nuxt
比较友好的就只有vercel
了,于是部署之,直接选择框架,无脑下一步直接完成ssr的部署,然后将在cloudflare
域名cname
解析过去即可!