透過 100 多個提示學習 Nuxt!

設定

Nuxt 預設設定為合理的預設值,讓您能高效開發。

預設情況下,Nuxt 的設定涵蓋大多數使用案例。 nuxt.config.ts 檔案可以覆寫或擴充此預設設定。

Nuxt 設定

nuxt.config.ts 檔案位於 Nuxt 專案的根目錄,可以覆寫或擴充應用程式的行為。

最簡化的設定檔會匯出 defineNuxtConfig 函式,其中包含您的設定物件。 defineNuxtConfig 輔助函式是全域可用的,無需匯入。

nuxt.config.ts
export default 
defineNuxtConfig
({
// My Nuxt config })

此檔案通常會在文件中提及,例如新增自訂腳本、註冊模組或變更渲染模式。

每個選項都會在「設定參考」中說明。
您不必使用 TypeScript 來使用 Nuxt 建置應用程式。但是,強烈建議您為 nuxt.config 檔案使用 .ts 副檔名。如此一來,您就可以在 IDE 中獲得提示,以避免在編輯設定時發生錯字和錯誤。

環境覆寫

您可以在 nuxt.config 中設定完全類型化的、每個環境的覆寫。

nuxt.config.ts
export default 
defineNuxtConfig
({
$production
: {
routeRules
: {
'/**': {
isr
: true }
} },
$development
: {
// },
$env
: {
staging
: {
// } }, })

若要在執行 Nuxt CLI 命令時選取環境,只需將名稱傳遞給 --envName 標記,如下所示:nuxi build --envName staging

若要深入了解這些覆寫背後的機制,請參閱 c12 文件中關於 環境特定設定的說明。

觀看 Alexander Lichter 關於環境感知 nuxt.config.ts 的影片。
如果您正在編寫圖層,您也可以使用 $meta 金鑰來提供您或圖層使用者可能會使用的中繼資料。

環境變數和私密權杖

runtimeConfig API 會將環境變數等數值公開給應用程式的其餘部分使用。預設情況下,這些鍵值僅在伺服器端可用。而 runtimeConfig.public 中的鍵值則在用戶端也可用。

這些數值應在 nuxt.config 中定義,並且可以使用環境變數覆寫。

export default 
defineNuxtConfig
({
runtimeConfig
: {
// The private keys which are only available server-side
apiSecret
: '123',
// Keys within public are also exposed client-side
public
: {
apiBase
: '/api'
} } })

這些變數會使用 useRuntimeConfig() composable 公開給應用程式的其餘部分使用。

pages/index.vue
<script setup lang="ts">
const runtimeConfig = useRuntimeConfig()
</script>
請在 文件 > 指南 > 進階 > 執行階段配置 中閱讀更多資訊。

應用程式配置

位於來源目錄(預設為專案根目錄)中的 app.config.ts 檔案,用於公開可以在建置時確定的公開變數。與 runtimeConfig 選項相反,這些變數無法使用環境變數覆寫。

最小的設定檔會匯出包含您的設定的物件的 defineAppConfig 函式。defineAppConfig 輔助函式是全域可用的,無需匯入。

app.config.ts
export default defineAppConfig({
  title: 'Hello Nuxt',
  theme: {
    dark: true,
    colors: {
      primary: '#ff0000'
    }
  }
})

這些變數會使用 useAppConfig composable 公開給應用程式的其餘部分使用。

pages/index.vue
<script setup lang="ts">
const appConfig = useAppConfig()
</script>
請在 文件 > 指南 > 目錄結構 > 應用程式配置 中閱讀更多資訊。

runtimeConfig vs app.config

如上所述,runtimeConfigapp.config 都用於將變數公開給應用程式的其餘部分使用。為了確定您應該使用哪一個,以下是一些準則

  • runtimeConfig:在建置後需要使用環境變數指定的私有或公開令牌。
  • app.config:在建置時確定的公開令牌、網站配置(例如主題變體、標題)以及任何不敏感的專案配置。
功能runtimeConfigapp.config
用戶端水合捆綁
環境變數✅ 是❌ 否
響應式✅ 是✅ 是
類型支援✅ 部分✅ 是
每個請求的配置❌ 否✅ 是
熱模組替換❌ 否✅ 是
非原始 JS 類型❌ 否✅ 是

外部設定檔

Nuxt 使用 nuxt.config.ts 檔案作為配置的單一事實來源,並跳過讀取外部設定檔。在建置專案的過程中,您可能需要配置這些檔案。下表重點介紹了常見的配置,以及(如果適用)如何在 Nuxt 中配置它們。

名稱設定檔如何配置
Nitronitro.config.tsnuxt.config 中使用 nitro
PostCSSpostcss.config.jsnuxt.config 中使用 postcss
Vitevite.config.tsnuxt.config 中使用 vite
webpackwebpack.config.tsnuxt.config 中使用 webpack

以下是其他常見設定檔的清單

名稱設定檔如何配置
TypeScripttsconfig.json更多資訊
ESLinteslint.config.js更多資訊
Prettierprettier.config.js更多資訊
Stylelintstylelint.config.js更多資訊
TailwindCSStailwind.config.js更多資訊
Vitestvitest.config.ts更多資訊

Vue 配置

使用 Vite

如果您需要將選項傳遞給 @vitejs/plugin-vue@vitejs/plugin-vue-jsx,您可以在 nuxt.config 檔案中執行此操作。

  • vite.vue 用於 @vitejs/plugin-vue。請在此處查看可用選項 這裡
  • vite.vueJsx 用於 @vitejs/plugin-vue-jsx。請在此處查看可用選項 這裡
nuxt.config.ts
export default 
defineNuxtConfig
({
vite
: {
vue
: {
customElement
: true
},
vueJsx
: {
mergeProps
: true
} } })
請在 文件 > API > 配置 > Nuxt 配置#vue 中閱讀更多資訊。

使用 webpack

如果您使用 webpack 並需要配置 vue-loader,您可以使用 nuxt.config 檔案內的 webpack.loaders.vue 鍵來執行此操作。可用選項 在此處定義

nuxt.config.ts
export default 
defineNuxtConfig
({
webpack
: {
loaders
: {
vue
: {
hotReload
: true,
} } } })
請在 文件 > API > 配置 > Nuxt 配置#loaders 中閱讀更多資訊。

啟用 Vue 實驗性功能

您可能需要啟用 Vue 中的實驗性功能,例如 propsDestructure。Nuxt 提供了一種在 nuxt.config.ts 中輕鬆執行此操作的方法,無論您使用哪個建置器。

nuxt.config.ts
export default 
defineNuxtConfig
({
vue
: {
propsDestructure
: true
} })

從 Vue 3.4 和 Nuxt 3.9 進行實驗性 reactivityTransform 遷移

自 Nuxt 3.9 和 Vue 3.4 以來,reactivityTransform 已從 Vue 移至 Vue Macros,其中具有 Nuxt 集成

請在 文件 > API > 配置 > Nuxt 配置#vue 1 中閱讀更多資訊。