Re:Nuxt

20/20
Lesson 20

Build & Deploy

建置與部署

恭喜來到最後一課!本章將帶你完成生產環境建置,體驗 Nitro 引擎的強大打包能力。

1 核心概念

當你執行 npm run build 時,Nitro 引擎會做幾件大事:

1

編譯 (Compile)

把 Vue 轉成原生 JavaScript。

2

壓縮 (Minify)

把空白、註解拿掉,變數名稱縮短,讓檔案變超小。

3

分割 (Code Splitting)

把程式碼切成小塊,使用者瀏覽到哪一頁才下載那一塊。

4

產出 (Output)

將結果吐到 .output/ 資料夾。

關鍵產物 .output/

這個資料夾就是你的「最終產品」。

  • 如果你要部署到 AWS/GCP/VPS:你只需要把 .output 資料夾上傳上去,然後執行 node .output/server/index.mjs
  • 不需要上傳 node_modules,也不需要上傳原始碼 (app/),因為所有需要的東西都已經被打包進 .output 了。

2 給 Claude Code 的中文指令

我們要請 Claude 執行建置指令,並觀察產出的檔案結構。

請複製以下指令給 Claude:

這是最後一步,請幫我建置生產環境版本:

  1. 在終端機執行 npm run build (這可能需要幾秒鐘)。
  2. 建置完成後,請列出 .output/ 資料夾的結構給我看。
  3. 請告訴我,如果要用 Node.js 啟動這個打包好的伺服器,我該輸入什麼指令?

3 驗收重點

這一步請手動在你的終端機操作,體驗上線的感覺:

等待建置完成:

你會看到一堆綠色的數據,顯示每個頁面的 JS 大小(通常只有幾 KB)。

如果看到 "Nitro preset: node-server",代表成功打包成 Node 伺服器應用。

檢查 .output:

確認根目錄多了一個 .output 資料夾。

裡面應該要有 public (靜態資源) 和 server (後端邏輯)。

啟動正式伺服器 (Production Preview):

在終端機輸入:

node .output/server/index.mjs

你會發現啟動速度是毫秒級的 (比 npm run dev 快超級多)。

打開瀏覽器 http://localhost:3000

隨意點擊頁面,體驗一下那種「瞬間切換」的極致速度。

💡 架構師筆記 Build vs Generate

在部署時,你有兩個指令可以選,這決定了你的網站架構:

npm run build (Server Mode / Hybrid)

  • 產物:一個 Node.js 伺服器。
  • 部署到:AWS EC2, Google Cloud Run, Vercel, Docker。
  • 特性:支援 SSR, API, 動態資料。這是我們剛剛做的。

nuxi generate (Static Mode)

  • 產物:一堆 .html, .js, .css 靜態檔案。
  • 部署到:GitHub Pages, Netlify (Static), S3 Bucket。
  • 特性:完全不需要 Node.js,伺服器成本最低,但無法使用 API 或動態 Server Middleware。

🎓 畢業結語

恭喜你!你已經完成了 Nuxt 4.x 概念指揮官課程 的所有 20 堂課。

回頭看看你現在擁有的技能樹:

Phase 1你懂了 Nuxt 4 的 app/ 結構與檔案路由。
Phase 2你懂了 useFetch 資料串接與 useState 狀態管理。
Phase 3你懂了 Nitro 伺服器引擎,會寫 API 和 Middleware。
Phase 4你懂了 SEO、權限管理與錯誤處理。
Phase 5你懂了混合渲染與最終部署。

你的下一步 (Next Step):

現在,這台「跑車」已經組裝好了,也學會開了。建議你找一個感興趣的主題(例如:個人部落格、記帳軟體、電影查詢網),不要看講義,試著用自己的話指揮 Claude,把這個專案從頭到尾做出來。

你現在已經是一位具備 Nuxt 4 全端思維的開發者了。祝你開發愉快!

20