Joseph Chen
做到這篇,你已經有了一個在本機跑起來的個人網頁。最後一步:把它放到網路上,讓任何人都能用網址訪問。
我選擇 Vercel。它是 Next.js 的親生父母(Vercel 公司開發了 Next.js),對 Next.js 的支援是最好的。 更重要的是:對個人專案完全免費,而且設定超簡單。
部署流程一覽
設定好之後,每次你 git push,Vercel 會自動偵測到並重新部署。完全不需要手動操作。
前置:Git 基礎
Vercel 需要從 GitHub 拉你的程式碼,所以先要把專案推到 GitHub。如果你還沒用過 Git,這裡快速介紹你需要知道的幾個指令:
git init在專案資料夾初始化 Git,只做一次
git add .把所有改動的檔案加入暫存區(準備提交)
git commit -m "first commit"建立一個提交(快照),記錄這個時間點的程式碼狀態
git remote add origin https://github.com/你的帳號/專案名.git連接到 GitHub 上的遠端倉庫
git push -u origin main把程式碼推送到 GitHub
部署步驟:從零到上線
在 GitHub 建立 Repository
前往 github.com,登入後點右上角 「+」→「New repository」。
建立後,GitHub 會給你一個 URL,類似 https://github.com/你的帳號/my-portfolio.git。
把本機程式碼推到 GitHub
推送成功後,到 GitHub 頁面重整,應該能看到你的程式碼出現在上面。
在 Vercel 連接 GitHub
前往 vercel.com,點 Sign Up → Continue with GitHub(用 GitHub 帳號登入)。
登入後進入 Dashboard,點 「Add New → Project」:
選擇 GitHub repo
在列表裡找到剛才建立的 my-portfolio,點「Import」
設定(幾乎不需要改)
Framework Preset 會自動偵測為 Next.js。Build Command、Output Directory 都不用動。
點「Deploy」
Vercel 會開始建置,大約 1–2 分鐘後完成
專案名稱.vercel.app。我的是 chullin.vercel.app。這個 URL 是永久的,馬上可以分享給別人。之後每次更新:只要 git push
連接好之後,之後修改程式碼、想更新線上版本,只需要:
Push 之後大約 30 秒到 2 分鐘,Vercel 就完成重新部署,線上版本自動更新。
環境變數(敏感資料保護)
如果你的專案有用到 API 金鑰(例如 EmailJS 的 Key、Google 的 API),絕對不能直接寫在程式碼裡推上 GitHub,要用環境變數:
然後在 Vercel 的 Dashboard 裡設定同樣的環境變數:
Vercel Dashboard → 你的專案 → Settings → Environment Variables
在這裡把 .env.local 裡的 key-value 輸入進去,Vercel 建置時會自動注入這些變數。
.env.local。Preview Deployments — 分支預覽
Vercel 有一個很實用的功能:每個 Git branch 都有獨立的預覽 URL。
你在 main branch push → 正式環境更新。 你在 feature/new-design branch push → 產生一個臨時的預覽 URL,不影響正式網站。
自訂網域(選用)
xxx.vercel.app 是免費的。如果你想要像 josephchen.dev 這樣的自訂網域,需要另外購買。
購買網域
Namecheap、GoDaddy、Google Domains(現已轉移到 Squarespace)等平台,.dev 或 .io 約 10–20 美金/年。
在 Vercel 設定
Dashboard → Settings → Domains → 輸入網域 → 在你的 DNS 提供商加入 Vercel 指定的 A record 或 CNAME。
xxx.vercel.app 完全夠用,面試官和 HR 看的是內容,不是域名。等你確定長期使用這個網頁了再考慮買網域。系列完結:完整技術棧一覽
走完 8 篇,你現在了解了打造我的個人網頁所用到的每一塊拼圖:
現代網頁開發
從 HTML/CSS/JS 到 React 到 Next.js 的演進地圖
開發環境建置
Node.js + VS Code + create-next-app + npm run dev
Next.js 專案結構
app/ 路由規則、layout.tsx、components/、public/
React 核心概念
Component、JSX、Props、useState、use client
Tailwind CSS
class 名稱即樣式、響應式前綴、flex/grid 排版
HeroUI 元件庫
Card、Button、Chip — 現成 UI 積木直接用
Framer Motion
motion.div、whileInView、spring 動畫
Vercel 部署
GitHub push → 自動部署,免費上線 vercel.app