跳轉到內容
supastack
瀏覽檔案
WebNext.js

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /zh-tw/docs/web/updating-the-kit.md (or send Accept: text/markdown).

套件改進時更新你的副本

把源儲存庫的改進帶進你的副本——記下你的起點,拉取新版本,在分支上合併,部署前先驗證。

詢問本指南
開啟方式

1. 記下你的起點

把更新當作一個小專案而不是一次貼上:把你手上的套件版本與更新的版本對比,把變更帶過來,在分支上測試後再部署。無論你的專案是套件儲存庫的 fork——GitHub 保持與源連線的副本——還是複製進你自己應用的程式碼,這套流程都適用。

在做任何事之前,先在專案中寫一條筆記,記三件事:你開始的套件提交——SHA,Git 用來精確定位一個版本的短程式碼——你收到的儲存庫(supastack-web、supastack-mobile、supastack-desktop 或 All Platforms monorepo),以及你自己已經做過的改動。

各套件儲存庫與 monorepo 的歷史不同,因此絕不要把一個倉庫的分支合併進另一個倉庫的 fork。如果你從沒記過起始 SHA,在 fork 中用 git merge-base 找最接近的共同版本;選擇性採用的話則找出你最後複製的檔案和測試——當確切基線不確定時,審查範圍更大的 diff。

2. 拉取併合並新版本

在專案資料夾內的終端中執行下面的命令,先儲存並提交你的工作——保持工作區乾淨,避免半成品混進合併。尖括號裡的詞是待替換模板:用你自己的值替換整個 <thing>。示例中的 GitHub 地址是佔位符;請使用你 fork 的儲存庫地址。

各行的作用:git remote add 給你的副本新增一個名為 kit-upstream 的第二個地址——套件儲存庫;git fetch 下載它的最新狀態而不碰你的檔案。git switch -c 建立獨立的升級分支,審查期間你的主分支保持原樣。git log 列出你即將接收的提交,git diff --stat 彙總哪些檔案變了;對你用到的模組要讀完整 diff,而不只是提交標題。git merge 把新程式碼帶進升級分支。

如果 Git 報告 kit-upstream 遠端已存在,跳過 remote add 那一行,直接繼續 git fetch。<previous-kit-sha> 是第 1 步記下的起始 SHA。

# Upstream is the platform repository you forked — substitute its real URL
# (supastack-web shown; use supastack-mobile or supastack-desktop as fits).
git remote add kit-upstream https://github.com/<org>/supastack-web.git
git fetch kit-upstream
git switch -c upgrade/kit-update
git log --oneline <previous-kit-sha>..kit-upstream/main
git diff --stat <previous-kit-sha>..kit-upstream/main
git merge kit-upstream/main

3. 解決衝突而不丟失你的成果

衝突意味著兩邊改了同一批行:套件向前走了,而你自定義了相同的位置。Git 暫停合併並標記檔案——它在請你做選擇,而不是報告損壞。

在編輯器中逐個開啟被標記的檔案,逐行決定:保留你產品自己的文案、名字和設定,採納套件的修復與結構性變更。絕不要用套件的新版本整體替換你自定義過的檔案來解決衝突——那會抹掉你的工作。在升級分支內解決,並在繼續之前為每塊已解決的區域跑測試。

如果合併出了問題,git merge --abort 會把分支恢復到合併前的狀態。在你自己合併升級分支之前,這個流程不會改動你的主分支或部署。

4. 按正確順序更新資料並部署

新的套件版本可能改動資料庫。先讀 packages/db/drizzle/——遷移資料夾——裡的新檔案,並在應用遷移前備份生產資料;先拿一次性副本測試。先部署相容的 schema 變更,再部署依賴它們的程式碼:如果遷移刪除或重塑了資料,只回滾應用程式碼無法恢復舊 schema。

把新的 .env.example 與你自己的設定對比,在託管控制台補上新增的必填值。.env 檔案裝著機密,絕不提交到 Git——你要在每臺機器、每個部署上手工重建它們,且機密永遠不放進 NEXT_PUBLIC_ 和 EXPO_PUBLIC_ 值。

部署前跑一遍套件自帶的驗證關卡。在 All Platforms monorepo 中,corepack pnpm check:local 執行 lint、型別檢查、單元測試和格式檢查,無需付費憑據;corepack pnpm verify:local 再額外加上生產構建和瀏覽器測試套件。單介面 fork 則執行該儲存庫自己的測試與構建命令。然後做一次預發冒煙:登入、試試第二個工作區、跑一遍產品的主流程。

全部通過後,記下接受的目標 SHA 和你解決過的衝突——這條筆記就是下次更新的起始基線。

corepack pnpm check:local
# fuller gate: adds the production build and browser suites
corepack pnpm verify:local

5. 如果你是複製片段而不是 fork

選擇性採用——把套件模組複製進已有應用——與套件沒有共享 Git 歷史,因此 git merge 幫不上忙。改為對比舊的源 SHA 與目標源 SHA,只移植觸及你所採用部分的變更。

把模組的公共型別、持久化 schema 與遷移、服務端呼叫方、配置、測試和檔案當作一個整體審查——包內的一處變更可能需要別處配套的路由或環境變更,只複製一個 helper 會讓其餘部分停留在舊契約上。記一條簡短的適配筆記——拿了套件哪些檔案、跳過哪些、改了什麼——下次更新就能按它重放你的選擇。

如果更新弄壞了你執行中副本的某些功能,先按故障排查指南走一遍,再撤銷自己的改動。

常見問題

14 個問題

supastack 是什麼?

supastack 是用於構建 AI 驅動 SaaS 產品的模組化基礎。它把通用基礎設施整合在一起,讓你專注於產品專屬的功能。

它支援 Web 和移動端嗎?

支援。supastack 包含 Next.js 與 Expo 應用,作為 Web 與移動端體驗的起點。

包含哪些認證方式?

Better Auth 覆蓋郵箱/密碼、OTP 與社交登入。個人工作區隨賬戶一起開通,產品記錄從第一天起就有邊界。

AI 是如何支援的?

supastack 包含可配置的多供應商 AI、用量追蹤、預算,以及加密的自帶金鑰(BYOK)支援。

訂閱如何處理?

對於基於該套件構建的產品,Stripe 計費、訂閱與許可權構成付費訪問的基礎。供應商金鑰僅存於服務端。

我的產品專屬程式碼放在哪裡?

產品專屬功能保留在獨立的程式碼庫中,產品通過配置接入 supastack 的基礎模組。

supastack 如何定價?

套件為一次性購買、終身更新:單棧 249 美元(Next.js(Web)、Expo(iOS 與 Android)、Tauri(macOS 與 Windows 桌面)倉庫任選其一),雙棧 398 美元(任選兩個倉庫),或完整套裝 399 美元(全部三個倉庫與完整 monorepo),每個額外開發者席位 75 美元。套件本身沒有訂閱。本站結賬後通過郵件傳送許可證金鑰,倉庫訪問通過 GitHub 邀請授予。

工作區如何界定我的資料?

使用者記錄按 workspaceId 劃定邊界。身份、許可權、AI 用量、計費事件與審計條目都留在個人工作區邊界內。

後臺任務如何工作?

Trigger.dev 是明確的任務執行時。JobRunner 契約只承諾 enqueue、status 與 cancel——工作流語義保持 Trigger.dev 專有且顯式。

郵件與營銷觸達有何不同?

事務性郵件覆蓋產品工作流,如任務完成通知。冷觸達與營銷活動屬於產品自身的範疇,不在本套件的郵件模組內。

移動端購買如何運作?

移動端已支援 RevenueCat 原生購買和恢復購買,訪問許可權由服務端驗證。釋出前需配置商店賬戶並完成裝置測試。Web 計費保持獨立。

AI 供應商金鑰存放在哪裡?

自帶金鑰憑證經過加密且僅存於服務端。金鑰在日誌中被脫敏;用量與預算在工作區級別保持可見。

結賬支援哪些付款方式?

Stripe 託管結賬接受銀行卡,在 Stripe 賬戶啟用後還可提供支付寶與微信支付——方便中國買家。錢包授權為非同步確認,付款完成後許可證頁面會立即更新。

我能申請退款嗎?

獲得程式碼倉庫訪問許可權後,supastack 將永久歸你所有,因此無法退款。但請放心,你將獲得包含終身更新的完整原始碼,可為你自己或客戶構建併發布無限數量的產品。你只需注意不能轉賣程式碼,也不能將倉庫作為啟動模板二次分發。唯一的例外是上線返現——上線一款用 supastack 打造的真實產品並公開分享,在購買後 60 天內達到 5,000 次自然瀏覽或 50 個自然按讚,即可退還已付款項的 50%;詳見條款。

TW
主題