設定
Nuxtは、あなたを生産的にするために合理的なデフォルトで設定されています。
デフォルトでは、Nuxtはほとんどのユースケースをカバーするように設定されています。nuxt.config.ts
ファイルは、このデフォルトの設定を上書きまたは拡張することができます。
Nuxtの設定
nuxt.config.ts
ファイルはNuxtプロジェクトのルートに位置しており、アプリケーションの動作を上書きまたは拡張することができます。
最小限の設定ファイルは、設定を含むオブジェクトを含むdefineNuxtConfig
関数をエクスポートします。defineNuxtConfig
ヘルパーはインポートなしでグローバルに利用可能です。
export default defineNuxtConfig({
// My Nuxt config
})
このファイルは、カスタムスクリプトの追加、モジュールの登録、レンダリングモードの変更などを行うために、ドキュメンテーションで頻繁に参照されます。
こちらも参照 api > configuration > nuxt-configNuxtでアプリケーションを構築するためにTypeScriptを使用する必要はありません。しかし、nuxt.config
ファイルの拡張子に.ts
を使用することを強くお勧めします。これにより、設定を編集する際のタイプミスやエラーを避けるためのIDEのヒントを利用することができます。
環境オーバーライド
nuxt.configで完全に型安全な環境ごとのオーバーライドを設定することができます。
export default defineNuxtConfig({
$production: {
routeRules: {
'/**': { isr: true }
}
},
$development: {
//
},
$env: {
staging: {
//
}
},
})
NuxtのCLIコマンドを実行する際に環境を選択するには、--envName
フラグに環境名を渡すだけでよいです。たとえば、nuxt build --envName staging
のようにします。
これらのオーバーライドの背後にある仕組みについて詳しく知りたい場合は、 c12
ドキュメンテーションの環境固有の設定を参照してください。
レイヤーを作成している場合は、$meta
キーを使用して、あなた自身やレイヤーの消費者が使用する可能性のあるメタデータを提供することもできます。
環境変数とプライベートトークン
runtimeConfig
APIは環境変数のような値をアプリケーションの残りの部分に公開します。デフォルトでは、これらのキーはサーバーサイドでのみ利用可能です。 runtimeConfig.public
および runtimeConfig.app
(Nuxt内部で使用されています)内のキーはクライアントサイドでも利用可能です。
これらの値は 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を使用してアプリケーションの残りの部分に公開されます。
const runtimeConfig = useRuntimeConfig()
Appの設定
app.config.ts
ファイルは、ビルド時に決定できる公開変数を公開するために使用されます。これはソースディレクトリ(デフォルトではプロジェクトのルート)にあり、runtimeConfig
オプションとは対照的に、これらは環境変数を使用して上書きすることはできません。
最小限の設定ファイルは、設定を含むオブジェクトを含む defineAppConfig
関数をエクスポートします。 defineAppConfig
ヘルパーはインポートなしでグローバルに利用可能です。
export default defineAppConfig({
title: 'Hello Nuxt',
theme: {
dark: true,
colors: {
primary: '#ff0000'
}
}
})
これらの変数は、useAppConfig
composableを使用してアプリケーションの他の部分に公開されます。
const appConfig = useAppConfig()
runtimeConfig
vs. app.config
上述のように、runtimeConfig
と app.config
の両方がアプリケーションの他の部分に変数を公開するために使用されます。どちらを使うべきかを決定するためのいくつかのガイドラインは以下のとおりです:
runtimeConfig
: ビルド後に環境変数を使用して指定する必要があるプライベートまたはパブリックのトークン。app.config
: ビルド時に決定する公開トークン、テーマバリアントなどのウェブサイト設定、タイトル、および機密でないプロジェクト設定。
特徴 | runtimeConfig | app.config |
---|---|---|
クライアントサイド | Hydrated | Bundled |
環境変数 | ✅ Yes | ❌ No |
リアクティブ性 | ✅ Yes | ✅ Yes |
タイプサポート | ✅ Partial | ✅ Yes |
リクエストごとの設定 | ❌ No | ✅ Yes |
ホットモジュールの置換 | ❌ No | ✅ Yes |
非プリミティブJSタイプ | ❌ No | ✅ Yes |
外部設定ファイル
Nuxtは nuxt.config.ts
ファイルを設定の一元情報源として使用し、外部の設定ファイルの読み込みは無視します。プロジェクトを作成していく過程で、それらの設定が必要になるかもしれません。以下の表では、一般的な設定とそれがNuxtでどのように設定できるかを示しています。
名前 | 設定ファイル | 設定方法 |
---|---|---|
Nitro | nitro.config.ts | nuxt.config 内で nitro キーを使用 |
PostCSS | postcss.config.js | nuxt.config 内で postcss キーを使用 |
Vite | vite.config.ts | nuxt.config 内で vite キーを使用 |
webpack | webpack.config.ts | nuxt.config 内で webpack キーを使用 |
他によく使用される設定ファイルは以下の通りです:
名前 | 設定ファイル | 設定方法 |
---|---|---|
TypeScript | tsconfig.json | 詳細情報 |
ESLint | eslint.config.js | 詳細情報 |
Prettier | prettier.config.js | 詳細情報 |
Stylelint | stylelint.config.js | 詳細情報 |
TailwindCSS | tailwind.config.js | 詳細情報 |
Vitest | vitest.config.ts | 詳細情報 |
Vueの設定
Viteを使用する場合
@vitejs/plugin-vue
または@vitejs/plugin-vue-jsx
にオプションを渡す必要がある場合、 nuxt.config
ファイルでそれを行うことができます。
@vitejs/plugin-vue
に対してはvite.vue
。利用可能なオプションを確認します。@vitejs/plugin-vue-jsx
に対してはvite.vueJsx
。利用可能なオプションを確認します。
export default defineNuxtConfig({
vite: {
vue: {
customElement: true
},
vueJsx: {
mergeProps: true
}
}
})
webpackを使用する場合
webpackを使用していてvue-loader
を設定する必要がある場合、nuxt.config
ファイル内のwebpack.loaders.vue
キーを使用してこれを行うことができます。利用可能なオプションはここで定義されています。
export default defineNuxtConfig({
webpack: {
loaders: {
vue: {
hotReload: true,
}
}
}
})
Vueの実験的な機能の有効化
VueのpropsDestructure
のような実験的な機能を有効にする必要があるかもしれません。Nuxtは nuxt.config.ts
でそれを行う簡単な方法を提供しています。ビルダーの種類に関係なく:
export default defineNuxtConfig({
vue: {
propsDestructure: true
}
})
実験的な reactivityTransform
の移行
Nuxt 3.9とVue 3.4から、reactivityTransform
はVueからVue Macrosに移動しています。これにはNuxtのインテグレーションがあります。
※このページは Nuxt.js 公式ドキュメントの翻訳ページ(非公式)です。
公式ドキュメントの該当ページはこちら:
https://nuxt.com/docs/3.x/getting-started/configuration