43
Re:Nuxt 100 天練習曲
Day 43

專案的大腦中樞 (nuxt.config.ts)

Day 43·Core Configuration·Project Settings

經過了前面四十多天的學習,您一定對 nuxt.config.ts 這個檔案非常熟悉了,我們幾乎每天都在和它打交道。今天,就讓我們正式地、系統性地來認識這個 Nuxt 專案中最重要的設定檔。

1. 專案的大腦

如果說 app.vue 是專案的骨架,pages/ 是房間,那麼 nuxt.config.ts 就是整個專案的大腦和神經中樞

它掌管著專案的所有核心設定,決定了您的 Nuxt 應用程式要如何運作。從功能開關到效能優化,幾乎所有事情都可以在這裡設定。

我們通常會用 defineNuxtConfig 這個輔助函式把我們的設定包起來。這樣做的好處是,當您在 VS Code 裡寫設定時,它會提供智慧提示和自動補全,能有效避免打錯字。

nuxt.config.ts
// nuxt.config.ts
import { defineNuxtConfig } from 'nuxt/config'

export default defineNuxtConfig({
  // 所有 Nuxt 的核心設定都寫在這裡
})
智慧提示

使用 defineNuxtConfig 可以獲得完整的 TypeScript 智慧提示,讓設定過程更安全、更高效。

2. 我們曾在這裡做過的事 (回顧)

到目前為止,我們已經在這個檔案裡設定過很多東西了,讓我們來回顧一下:

app: { head: { ... } }

(Day 11)

設定網站全域的 meta 標籤,例如標題和 icon。

modules: [...]

(Day 19, 32)

安裝模組,例如 @pinia/nuxt 或 @nuxt/content,來擴充 Nuxt 的功能。

runtimeConfig: { ... }

(Day 39)

管理環境變數和機密資訊,區分伺服器端和公開的資料。

css: [...]

(Day 6)

引入全域的 CSS 檔案,為整個網站設定統一的樣式。

app: { pageTransition: { ... } }

(Day 13)

設定頁面轉場的預設動畫效果。

routeRules: { ... }

(Day 24)

定義路由規則,實現混合渲染,控制快取策略。

這些只是 nuxt.config.ts 功能的冰山一角,它還有許多其他強大的設定選項等待您去探索!

3. 最高的權力

還記得我們在 Day 42 提到的設定優先級嗎?nuxt.config.ts 擁有最高的權力,它會覆寫 .nuxtrc 裡的任何設定。

重要提醒

正因為它如此重要,任何對 nuxt.config.ts 的修改,都會讓 Nuxt 開發伺服器完全重啟,以確保所有設定都正確生效。

nuxt.config.ts

最高權力

專案 .nuxtrc

中等權力

全域 ~/.nuxtrc

最低權力

今日總結

nuxt.config.ts 是您客製化 Nuxt 專案的核心。它是連結所有 Nuxt 功能、模組和設定的樞紐。

它是整個專案的大腦和神經中樞,掌管所有核心設定。

使用 defineNuxtConfig 可以獲得智慧提示和自動補全。

擁有最高的設定優先級,會覆蓋所有其他設定檔。

修改後會觸發開發伺服器重啟,確保設定正確生效。

進階學習

雖然我們已經接觸過很多選項,但這還只是冰山一角。當您需要尋找特定設定時,Nuxt 官方設定文件永遠是您最好的朋友。