Cloudflare最近发布了vinext,这是一个基于Vite而非Turbopack重新实现的Next.js实验性项目。这个项目由一名工程师在大约一周的时间内利用人工智能技术完成开发,期间花费了1,100美元用于购买API令牌。Cloudflare将vinext宣传为专为Cloudflare Workers优化过的替代方案,但同时也明确指出该项目仍处于实验阶段,尚未经过大规模测试。
初步的测试结果看起来相当不错,但也存在一些需要注意的地方。在包含33个路由的测试应用中,使用Vite 8的Rolldown打包工具进行生产环境构建所需时间为1.67秒,而使用Next.js 16与Turbopack组合则需要7.38秒,前者速度是后者的4.4倍。此外,客户端代码包的大小也从168.9 KB压缩到了72.9 KB,减少了57%。不过Cloudflare提醒称,这些数据仅具有参考意义,并非最终结果,因为它们是基于单一测试场景得出的,并不适用于现实世界中的生产环境。

(来源:Cloudflare的博客文章)
负责该项目开发的Cloudflare工程师Steve Faulkner在博客文章中详细描述了开发过程:最初几小时使用OpenCode工具与Claude一起定义系统架构,随后通过人工智能生成代码实现及测试用例。当测试通过后,这些代码就会被合并到项目中;如果测试失败,人工智能会接收错误信息并重新进行迭代。最终,超过800次人工智能辅助的开发过程产生了项目中的大部分代码,但所有代码都经过了严格的质量检测,包括1,700多次Vitest测试、从Next.js原有测试套件中移植过来的380次Playwright端到端测试,以及TypeScript类型检查和代码格式化检查。
vinext实现了Next.js的API接口、路由机制、服务器端渲染功能、React Server Components组件、服务器端操作逻辑以及缓存机制,但它是以Vite插件的形式实现的,而非直接包装Next.js的输出结果。因此,任何支持Vite环境API的平台都可以运行vinext,不过Cloudflare Workers才是它的主要部署目标。该公司声称,其代码库中约有95%的内容都是与具体平台无关的通用Vite代码。
要将vinext部署到Cloudflare Workers环境中,只需执行一条命令:`vinext deploy`。无论是App Router还是Pages Router,都能支持完整的客户端代码渲染功能。在缓存方面,vinext提供了专门用于ISR(增量式静态资源生成)机制的KV缓存处理程序。目前已有许多实际应用案例,例如App Router测试平台、Hacker News克隆版本,以及由National Design Studio负责维护的美国政府测试网站CIO.gov。
说这个技术只用了一周时间就开发完成,其实意味着根本没有人真正仔细研究过这些代码。
你把代码文档写得越详细,定义的规则越严格,别人就越容易复制你的代码。如果没有Next.js自身的测试框架,Cloudflare根本不可能完成这项工作。
vinext中有大约95%的部分都是使用Vite技术实现的,”有评论者写道,“真正的成就在于这些代码是由人类编写的。”
vinext目前还处于测试阶段。它才诞生不到一周的时间,也还没有在实际环境中接受过大规模流量的测试。如果你正在考虑将它用于生产环境,请务必谨慎行事。