【Vercel 教學】#02 第一次部署就上手:從 GitHub 到上線

測驗:第一次部署就上手:從 GitHub 到上線

共 5 題,點選答案後會立即顯示結果

1. 為什麼文章推薦使用 GitHub OAuth 登入 Vercel?

  • A. 因為這是唯一支援的登入方式
  • B. 因為可以自動連結 GitHub 倉庫,後續匯入專案更方便
  • C. 因為 GitHub OAuth 比其他方式更安全
  • D. 因為只有 GitHub 用戶才能使用 Vercel

2. Vercel 的「Framework Preset」功能主要做什麼?

  • A. 讓你手動選擇要使用的程式語言
  • B. 自動安裝專案需要的所有套件
  • C. 自動偵測專案使用的框架並最佳化部署設定
  • D. 強制專案使用特定版本的 Node.js

3. 當你推送程式碼到 main 分支以外的分支時,Vercel 會怎麼處理?

  • A. 不會進行任何部署
  • B. 產生一個 Preview 網址供預覽
  • C. 直接更新正式網站
  • D. 發送錯誤通知給開發者

4. Vercel 如何知道 GitHub 倉庫有新的 push 事件?

  • A. Vercel 每分鐘自動掃描一次倉庫
  • B. 需要手動到 Vercel Dashboard 觸發
  • C. 透過 GitHub Actions 通知
  • D. 透過在倉庫設定的 Webhook 接收通知

5. 如果部署成功但頁面顯示空白,最可能的原因是什麼?

  • A. 環境變數設定錯誤
  • B. GitHub 授權過期
  • C. Output Directory 設定錯誤
  • D. Build Command 執行失敗

前言

上一篇我們認識了 Vercel 是什麼,這篇要實際動手:把你的專案部署上線。整個過程大約只需要 5 分鐘,而且完成後,每次你 push 程式碼到 GitHub,Vercel 就會自動幫你更新網站。

學習目標

讀完本篇後,你將能夠:

  • 註冊 Vercel 帳號並連結 GitHub
  • 將現有專案部署到 Vercel
  • 理解自動部署的運作機制

步驟一:註冊 Vercel 帳號

使用 GitHub 登入

Vercel 支援多種登入方式,但最推薦使用 GitHub OAuth,因為:

  • 一鍵授權,不用額外記密碼
  • 自動連結你的 GitHub 倉庫
  • 後續匯入專案更方便

操作流程:

  1. 前往 vercel.com
  2. 點擊右上角的「Sign Up」
  3. 選擇「Continue with GitHub」
  4. 在 GitHub 授權頁面點擊「Authorize Vercel」
  5. 完成!你已經有 Vercel 帳號了

授權畫面會看到什麼

當你授權時,GitHub 會顯示 Vercel 要求的權限:

Vercel 想要存取:
- 讀取你的 email 地址
- 讀取你的公開倉庫
- 讀取和寫入你授權的倉庫

這些權限讓 Vercel 能夠:

  • 列出你的專案供你選擇
  • 監聽你的 push 事件
  • 自動拉取程式碼進行部署

步驟二:匯入 GitHub 專案

進入匯入流程

登入後,你會看到 Dashboard。匯入專案有兩種入口:

  • 如果是第一次使用:畫面中央會有大大的「Import Project」按鈕
  • 如果已有專案:點擊右上角的「Add New…」→「Project」

選擇要部署的倉庫

點擊「Import」後,會列出你 GitHub 上的所有倉庫:

你的倉庫
├── my-portfolio        [Import]
├── blog-site           [Import]
├── todo-app            [Import]
└── ...更多倉庫
Code language: CSS (css)

找不到你要的倉庫?

如果是組織(Organization)的倉庫,可能需要額外授權:

  1. 點擊「Adjust GitHub App Permissions」
  2. 在 GitHub 設定頁面,選擇要授權的組織
  3. 回到 Vercel 重新整理

步驟三:設定部署選項

選好倉庫後,會進入設定頁面。這裡有三個重要欄位:

Framework Preset(框架預設)

Vercel 會自動偵測你的專案使用什麼框架:

偵測到的檔案 判定為 自動設定
next.config.js Next.js 已最佳化
vite.config.js Vite 已最佳化
package.json 有 react-scripts Create React App 已最佳化
index.html(無框架) Other 靜態網站

大多數情況下,你不需要手動選擇——Vercel 的自動偵測相當準確。

Build Command(建置指令)

這是 Vercel 在部署時執行的指令,用來編譯你的程式碼:

# 常見的 Build Command
npm run build      # 大部分專案
yarn build         # 使用 yarn 的專案
pnpm build         # 使用 pnpm 的專案
Code language: PHP (php)

什麼時候需要修改?

  • 你的 build 指令不是標準的 npm run build
  • 需要先執行其他指令(例如 npm run generate && npm run build

Output Directory(輸出目錄)

建置完成後,產出的靜態檔案放在哪裡:

框架 預設輸出目錄
Next.js .next(Vercel 自動處理)
Vite dist
Create React App build
純 HTML .(根目錄)

通常不用改——除非你有自訂輸出路徑。

環境變數(可選)

如果專案需要環境變數(例如 API 金鑰),在這裡新增:

KEY                 VALUE
DATABASE_URL        postgres://...
API_SECRET          sk-xxxxx
Code language: JavaScript (javascript)

注意:這些變數會在建置和執行時使用,但不會暴露在前端程式碼中(除非 key 是 NEXT_PUBLIC_ 開頭)。

步驟四:點擊 Deploy!

設定確認後,點擊「Deploy」按鈕。接下來會看到即時的部署過程:

部署進度
├── Cloning repository...     ✓
├── Installing dependencies... ✓
├── Building project...        ✓
├── Deploying to edge...       ✓
└── Ready!                     ✓

整個過程通常只需要 1-3 分鐘。

部署完成後你會得到

  1. 一個即時可用的網址
  2. 專案 Dashboard
    • 部署歷史
    • 訪客分析
    • 日誌紀錄
  3. 預覽連結(每次 commit 都會產生)

自動部署:Push 即上線

這是 Vercel 最方便的功能。設定完成後:

你的開發流程
├── 本地修改程式碼
├── git add . && git commit -m "update"
├── git push origin main
└── Vercel 自動偵測並部署  ←  全自動!
Code language: JavaScript (javascript)

它是怎麼運作的?

當你連結 GitHub 倉庫時,Vercel 會在倉庫設定一個 Webhook:

GitHub 倉庫設定
└── Webhooks
    └── https://api.vercel.com/v1/integrations/deploy/xxx
        觸發事件:push, pull_request
Code language: JavaScript (javascript)

每當有 push 事件,GitHub 就會通知 Vercel,然後 Vercel 開始新的部署。

不同分支的部署策略

分支類型 部署結果
main(Production Branch) 更新正式網站
其他分支(如 feature/xxx 產生 Preview 網址
Pull Request 產生 Preview 網址 + 留言通知

這表示:

  • 推到 main = 正式上線
  • 推到其他分支 = 給團隊預覽用的臨時網址

常見問題排解

建置失敗:找不到指令

Error: Command "npm run build" exited with 1
Code language: JavaScript (javascript)

可能原因:

  • package.json 裡沒有定義 build script
  • 解法:確認你的 package.json 有這段:

建置失敗:套件安裝問題

Error: Cannot find module 'xxx'
Code language: JavaScript (javascript)

可能原因:

  • 漏了提交 package.jsonpackage-lock.json
  • 解法:確保這兩個檔案都有 push 上去

部署成功但頁面空白

可能原因:

  • Output Directory 設定錯誤
  • 解法:檢查建置後的實際輸出資料夾名稱

小結

恭喜!你已經完成了第一次 Vercel 部署。讓我們回顧一下:

  1. 註冊很簡單:用 GitHub 帳號一鍵登入
  2. 匯入專案:選倉庫、確認設定、點 Deploy
  3. 自動部署:之後每次 push,Vercel 都會自動更新

下一篇,我們將深入了解「Preview 部署」功能——如何讓團隊在合併程式碼前就能預覽變更。


延伸閱讀

進階測驗:第一次部署就上手:從 GitHub 到上線

測驗目標:驗證你是否能在實際情境中應用所學。
共 5 題,包含情境題與錯誤診斷題。

1. 你是新創團隊的前端工程師,需要將一個使用 Vite 建置的 React 專案部署到 Vercel。在設定部署時,你應該如何處理 Output Directory? 情境題

  • A. 手動改成 build,因為 React 專案都是輸出到 build
  • B. 保持預設即可,Vercel 會自動偵測 Vite 專案並設定為 dist
  • C. 改成根目錄 .,這樣最保險
  • D. 必須先在本地執行 build 確認輸出目錄名稱

2. 團隊成員小明在 Vercel Dashboard 找不到公司組織的私有倉庫。他應該怎麼做? 情境題

  • A. 重新註冊一個新的 Vercel 帳號
  • B. 請組織管理員將倉庫改為公開
  • C. 點擊「Adjust GitHub App Permissions」,在 GitHub 設定頁面授權該組織
  • D. 手動輸入倉庫的 URL 進行匯入

3. 小華部署專案時遇到以下錯誤訊息,最可能的原因是什麼? 錯誤診斷

Error: Command “npm run build” exited with 1
  • A. Vercel 的 Node.js 版本太舊
  • B. package.json 裡沒有定義 build script
  • C. GitHub 授權已過期需要重新連結
  • D. 專案沒有安裝任何依賴套件

4. 你的專案需要使用 API 金鑰,變數名稱是 API_SECRET。在 Vercel 設定環境變數後,前端程式碼為何無法讀取這個變數? 情境題

  • A. 環境變數只能在 production 環境使用
  • B. 需要重新部署才會生效
  • C. 變數名稱不能包含底線
  • D. 變數名稱需要以 NEXT_PUBLIC_ 開頭才會暴露在前端

5. 部署時出現以下錯誤,最可能的解決方法是什麼? 錯誤診斷

Error: Cannot find module ‘express’
  • A. 在 Vercel Dashboard 手動安裝 express 套件
  • B. 將 express 加入 Build Command 的參數
  • C. 確保 package.jsonpackage-lock.json 都有 push 到 GitHub
  • D. 改用 yarn 作為套件管理器

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *