跳到正文
cloudflare blog(blog.cloudflare.com)· Christoph Nakazawa·· 13 天前精選AI 評分73

VoidZero 推出 Void Platform、SDK 與 CLI,整合 Vite 工作流

Deploy with Void

AI 導讀

VoidZero 在 Cloudflare 部落格上宣佈推出三款開源工具: - Void Platform:共享部署平臺,可在 Cloudflare Workers for Platforms 上託管 Void 應用,支援自訂部署工作流程、資源限制與使用者管理。

推薦理由

VoidZero推出的Void Platform、SDK和CLI整合Vite工作流,降低全棧開發與部署成本,適合團隊快速原型與內部應用。

正文 · AI 翻譯

VoidZero 的工具,如 Vite、Vitest、Oxc 和 Rolldown — 以 Vite+ 的方式打包成一個工具鏈 — 讓前端開發更快,但構建全端應用程式不僅僅需要工具堆疊。這些應用程式需要伺服器路由、資料庫、本機開發環境,以及快速且簡單的方式將想法部署到正式環境。

我們很高興將三個新產品開源,將伺服器路由、型別化資料存取與 Cloudflare 部署整合進統一的 Vite 工作流程。

  • Void Platform: 一個供團隊在 Cloudflare 上託管 Void 應用程式的共用部署平臺。
  • Void SDK: 一個可組合的 JavaScript SDK,用於使用 Vite 構建全端應用程式。
  • Void CLI: 一個 CLI,用於配置資源並將 Vite 應用程式部署到 Cloudflare。

CLI 將使用 SDK 構建的應用程式部署到平臺。所有三個產品都以單一 JavaScript 套件和 Vite 外掛開源,您可透過 npm install void 安裝。使用 Void,您可以同時構建伺服器與客戶端,將資料庫中的型別帶到 UI,並讓 Void 自動配置您的應用程式所需的 Cloudflare 資源。

我們最初的目標是為所有使用者打造一個單一、私有的平臺來部署應用程式。自從 VoidZero 加入 Cloudflare 後,我們調整方向,將平臺開源並允許任何人安裝,因為我們看到需求日益增加:公司想鼓勵內部應用程式的快速開發,但擔心安全性,並不想讓每位員工都擁有雲端存取權。Void 解決了這個問題。

Void Platform:為您的公司打造的雲端平臺

Void Platform 完全開源,您可以 fork 它並依照需求整合公司系統、客製化部署流程、為客戶打造功能,或讓它在其他部署平臺上運作。您可以直接使用平臺、向上遊貢獻改進,或 fork 後僅構建所需功能。開源程式碼可即時使用或作為起點。

作為 Void Platform 的管理員,您可控制存取、設定資源上限、透過 Void CLI 或管理儀錶板檢查部署與使用情況,並提供安全防護,讓其他人能在同一共用平臺上釋出嚴謹且快速開發的應用程式。

透過安裝 Void Platform,您的團隊或客戶在 Cloudflare 帳戶中擁有一個共用部署環境,建立在 Workers for Platforms 之上。Void Platform 使您能:

  1. 更快的原型設計。您的團隊可以迅速構建原型、部署並分享可運作的應用程式以獲取回饋,無需為每個專案設定獨立的 Cloudflare 帳戶或配置資源。這將內部應用程式的交付時間從數天/數週縮短到數分鐘。
  2. 非技術團隊構建。此工作流程亦允許通常不寫程式碼的同事與程式編寫代理一起構建並分享自己的應用程式。設計師可建立互動原型,或運營人員可打造內部儀錶板,然後部署至同一平臺。所有操作皆具備適當的安全措施。

若要自行託管 Void 平臺,您需要:

  • 啟用 Workers for Platforms 與 R2 的 Cloudflare 帳戶
  • 一個 PostgreSQL 資料庫
  • 一個您選擇的登入供應商帳戶
  • 一個供您應用程式使用的網域

接著,執行單一指令安裝 Void 為雲端平臺:

平臺設定完成後,經審核的使用者可透過 Void CLI 連線並部署。

void connect https://api.orange-company.dev

使用者使用 Void SDK 來構建應用程式,SDK 為 Void Platform 提供認證、框架偵測、資源供應等功能。換句話說,Void Platform 的運作僅靠配套的 SDK 與 CLI。

Void SDK:零配置基礎設施

Void 將 Vite 應用轉換為完整堆疊的 Cloudflare Workers 應用。您或您的代理程式可編寫程式碼,Void 會在部署時自動推斷資源繫結並供應資料庫、佇列或 AI 繫結等資源。

要開始,請將 Void 加入 Vite 外掛:

import { defineConfig } from "vite";
import { voidPlugin } from "void";
import { voidReact } from "@void/react/plugin";

export default defineConfig({
  plugins: [voidPlugin(), voidReact()],
});

Void SDK 附帶 React 與 Vue 等流行 JavaScript UI 框架的介面卡,並提供基於檔案的 API 路由、預渲染、快取、島嶼模式,以及從資料庫到 UI 的端到端型別安全。

Void 的所有功能皆為可選且可組合。Void 可與現有應用框架整合,例如 Vinext、React Router、SvelteKit、Nuxt、TanStack Start 與 Astro。您可以使用這些框架進行路由與渲染,Void 則負責使用 Hono 處理資源 API、遷移、部署以及使用 Better Auth 進行認證。

我們來看看如何構建伺服器渲染頁面,從資料庫查詢到客戶端的型別皆自動推斷:

// pages/blog.server.ts
import { defineHandler, type InferProps } from 'void';
import { db } from 'void/db';
import { posts } from '@schema';

export const loader = defineHandler(async () => ({
  posts: await db.select().from(posts),
}));

export type Props = InferProps<typeof loader>;
// pages/blog.tsx
export default function Blog({ posts }: Props) {
  return (
    <ul>
      {posts.map((post) => <li key={post.id}>{post.title}</li>)}
    </ul>
  );
}

透過匯入 void/db,Void 在開發時為您的應用提供本機資料庫,並在生產環境自動為您建立 void deploy D1。此功能亦可用於透過 Cloudflare AI Gateway 使用 AI:只需匯入 void/ai,一切皆自動設定。

// routes/api/decide.ts
import { defineHandler } from 'void';
import { ai } from 'void/ai';

export const POST = defineHandler(async (c) => {
  const { question } = await c.req.json();
  const result = await ai.run('@cf/cloudflare/clef', {
    model: 'clef',
    state: {},
    questions: {
      decision: { type: 'noul', instructions: question },
    },
  });
  const probability = result.answers.decision.noul;
  return c.json({
    answer: probability >= 0.5 ? 'yes' : 'no',
    probability,
  });
});

Void 的 React 路由器為 Async React 設計,利用過渡與 Suspense 以實現跨畫面即時導航。將此路由器與現代資料框架(如 fate)以及 UI 圖書館(如 Astryx)配合,可透過 React 的過渡協調導航、資料取用與變更,並在整個應用中執行動作與樂觀更新。這些元件協同運作,使您能打造在高速網路上感覺同步、在慢速網路上順暢回退、且在昂貴渲染更新期間仍保持互動響應的應用。

若使用者不需要 Void Platform 的團隊管理功能,可使用自己的 Cloudflare 帳戶。Void SDK 亦可 直接部署至 Cloudflare。

Void CLI:一次部署指令

Void CLI 是 Void 的主要介面。CLI 負責管理平臺並部署應用。它基於新版 cf CLI,並能良好配合代理程式。

使用 Void CLI,您可以請代理程式偵錯失敗請求、閱讀部署日誌、分析應用表現,或讓其負責完整生命週期,為您部署完成的應用。

當您的應用已準備好部署至 Cloudflare 時,您可以執行:

首次執行 void deploy 時,CLI 會提示您登入 Cloudflare 帳戶。Void 以 Vite 建置您的應用、套用遷移、自動供應資源,並部署至 Cloudflare 或 Void Platform。它可用於處理專案的完整生命週期,例如建置、部署及管理資源與專案等:

類似 CLI(以及代理程式)可管理 Void 應用的完整生命週期,您亦可使用 CLI 管理 Void Platform:

  • 管理使用者、專案存取與資源
  • 檢視部署、日誌與回滾
  • 監控平臺健康與使用量

與我們聯絡

VoidZero 的使命是讓 JavaScript 開發者比以往更高效。 我們將 Vite、Rolldown、Oxlint、Oxfmt 與 Vitest 組合在 Vite+ 中,為開發、打包、程式碼品質與測試提供支援。 Void 將此堆疊延伸至全端應用程式開發,讓您與您的代理程式能建置、測試並部署整個應用程式。

我們已在 VoidZero 於過去數個月使用 Void SDK、CLI 與平臺於正式環境,並期待您使用 Void 所打造的作品。請與我們分享您的回饋:

來源: cloudflare blog (blog.cloudflare.com)
開啟原文