使用全栈框架和Cloudflare实现极速开发
内容提要
Cloudflare与Web框架的集成得到了重大改进,使开发人员能够更轻松地使用Cloudflare的开发者平台构建复杂的应用程序。Cloudflare引入了“create-cloudflare”CLI工具,通过使用“getPlatformProxy()”API,实现了Node.js和Cloudflare的JavaScript运行时之间的桥接。Cloudflare还与Vite团队合作,使全栈应用程序能够在其他JavaScript运行时中运行。
延伸解读
开发体验的权衡与突破
过去,使用全栈框架开发Cloudflare应用时,开发者面临两难:要么使用框架自带的本地开发服务器,享受快速迭代但无法访问D1、R2等Cloudflare资源;要么使用wrangler pages dev进行生产构建,能访问资源但迭代速度慢。现在,通过getPlatformProxy() API,开发者可以在框架开发服务器中直接访问Cloudflare的模拟资源,兼顾了开发速度和功能完整性。
C3工具与配置简化
create-cloudflare (C3) CLI工具简化了项目创建和Cloudflare集成。它委托框架特定的CLI进行脚手架生成,确保不丢失框架特性,并自动添加部署到Cloudflare所需的配置。开发者可以通过wrangler.toml文件配置D1数据库等资源绑定,使用TypeScript的开发者还能通过预配置命令更新类型定义,从而在本地开发中获得类型安全。
技术实现:桥接Node.js与workerd
getPlatformProxy() API是wrangler的一部分,由miniflare的magic proxy支持。它暴露一个JS代理对象,模拟Workers的env对象,使Node.js代码能够透明地调用运行在workerd中的JavaScript代码,并访问Cloudflare特定的运行时API。这样,框架开发服务器(基于Node.js)就能无缝使用D1、R2、KV等本地模拟器,而无需改变开发者的工作流程。
未来方向:与Vite团队合作
Cloudflare正与Vite团队合作,推进Vite environments提案,旨在让整个应用在workerd中运行,从而更真实地模拟生产环境。如果实现,开发者将能在Vite开发服务器中直接使用Cloudflare开发平台的全部功能,无需框架特定的定制集成。这将进一步减少开发与生产环境之间的差异,提升开发体验。
Q&A
Cloudflare如何改善与Web框架的集成?
Cloudflare通过引入'create-cloudflare' CLI工具和'getPlatformProxy()' API,简化了复杂应用程序的构建过程,使开发人员能够更轻松地使用Cloudflare的功能。
使用C3工具创建应用程序的步骤是什么?
首先运行'$ npm create cloudflare@latest',然后提供应用名称,选择全栈框架,C3会自动配置与Cloudflare的集成。
getPlatformProxy() API的作用是什么?
getPlatformProxy() API允许Node.js应用程序无缝访问Cloudflare的模拟器和API,桥接Node.js与Cloudflare JavaScript运行时之间的差距。
开发人员如何在本地开发服务器上使用Cloudflare资源?
开发人员可以通过框架特定的方法访问Cloudflare资源,例如在Next.js或Nuxt应用中使用特定的API路由来访问数据库。
Cloudflare的开发平台对全栈框架的支持有哪些?
Cloudflare支持多种全栈框架,如Astro、Next.js、Nuxt等,并提供D1 SQL数据库、R2对象存储等强大功能。
未来Cloudflare与Vite的合作将带来什么改进?
未来Cloudflare计划与Vite团队合作,进一步改善开发工作流程,使开发人员能够在Vite环境中更好地访问Cloudflare开发平台。