設定
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: {
// サーバーサイドでのみ利用可能なプライベートキー
apiSecret: '123',
// public内のキーはクライアントサイドでも公開されます
public: {
apiBase: '/api'
}
}
})
これらの変数は、useRuntimeConfig() コンポーザブルを使用してアプリケーションの他の部分に公開されます。
const runtimeConfig = useRuntimeConfig()アプリ設定
app.config.ts ファイルは、ソースディレクトリ(デフォルトではプロジェクトのルート)にあり、ビルド時に決定できる公開変数を公開するために使用されます。runtimeConfig オプションとは異なり、これらは環境変数を使用して上書きすることはできません。
最小限の設定ファイルは、設定を含むオブジェクトを持つ defineAppConfig 関数をエクスポートします。defineAppConfig ヘルパーはインポートなしでグローバルに利用可能です。
export default defineAppConfig({
title: 'Hello Nuxt',
theme: {
dark: true,
colors: {
primary: '#ff0000'
}
}
})
これらの変数は、useAppConfig コンポーザブルを使用してアプリケーションの他の部分に公開されます。
const appConfig = useAppConfig()runtimeConfig vs. app.config
前述のように、runtimeConfig と app.config はどちらもアプリケーションの他の部分に変数を公開するために使用されます。どちらを使用すべきかを判断するために、以下のガイドラインを参照してください:
runtimeConfig: ビルド後に環境変数を使用して指定する必要があるプライベートまたはパブリックトークン。app.config: ビルド時に決定される公開トークン、テーマバリアント、タイトル、機密でないプロジェクト設定などのウェブサイト設定。
| 機能 | runtimeConfig | app.config |
|---|---|---|
| クライアントサイド | ハイドレート | バンドル |
| 環境変数 | ✅ はい | ❌ いいえ |
| リアクティブ | ✅ はい | ✅ はい |
| 型サポート | ✅ 部分的 | ✅ はい |
| リクエストごとの設定 | ❌ いいえ | ✅ はい |
| ホットモジュールリプレースメント | ❌ いいえ | ✅ はい |
| 非プリミティブJS型 | ❌ いいえ | ✅ はい |
外部設定ファイル
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 ファイルでこれを行うことができます。
vite.vueは@vitejs/plugin-vue用です。利用可能なオプションを確認してください。vite.vueJsxは@vitejs/plugin-vue-jsx用です。利用可能なオプションを確認してください。
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
}
})
Vue 3.4およびNuxt 3.9からの実験的 reactivityTransform の移行
Nuxt 3.9およびVue 3.4以降、reactivityTransform はVueからVue Macrosに移行され、Nuxt統合があります。
※このページは Nuxt.js 公式ドキュメントの翻訳ページです。
公式ドキュメントの該当ページはこちら:
https://nuxt.com/docs/4.x/getting-started/configuration