brand logo

ドキュメント

nuxt.config.ts

Nuxtは単一のnuxt.configファイルで簡単に設定できます。

nuxt.configファイルの拡張子は.js.ts、または.mjsのいずれかにすることができます。

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

defineNuxtConfigヘルパーはインポートなしでグローバルに利用可能です。

必要に応じて、nuxt/configからdefineNuxtConfigを明示的にインポートすることもできます:

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

export default defineNuxtConfig({
  // My Nuxt config
})
こちらも参照 api > configuration > nuxt-config

設定が最新であることを確認するために、Nuxtはメイン設定ファイル、.env.nuxtignore、および.nuxtrcドットファイルの変更を検出すると完全に再起動します。

tips

このセクションは公式ドキュメントの翻訳ではなく、本サイト独自の補足記事です。

nuxt.config.tsとは?〜設定ファイルの重要性とメリット〜

Nuxt.jsを使う上で欠かせないのが、プロジェクトの挙動を制御する設定ファイル「nuxt.config.ts」です。このファイルは、アプリケーション全体の設定を一元管理できるため、開発効率の向上や保守性の向上に大きく貢献します。

特にTypeScript対応のプロジェクトでは、nuxt.config.tsを使うことで型安全に設定を記述でき、IDEの補完やエラー検出が効くためミスを減らせます。
また、Nuxtはこのファイルを読み込んでビルドやサーバー起動時の挙動を決定するため、ここでの設定ミスはアプリ全体に影響を及ぼします。
そのため、nuxt.config.tsの役割や書き方を正しく理解し、適切に使いこなすことが重要です。

まず結論:nuxt.config.tsのポイント

  • Nuxtの挙動を一元管理できる設定ファイルである
  • 拡張子は.js.ts.mjsが使えるが、TypeScript推奨
  • defineNuxtConfig関数で設定をラップし、型安全かつ補完対応に
  • 環境変数やプラグイン、モジュールの設定もここで行う
  • 変更を検知するとNuxtは自動で再起動し設定を反映する
  • 設定ミスはビルドエラーや実行時エラーの原因になるため注意が必要

いつ使うべきか?使わない方がよいケースは?

nuxt.config.tsは、プロジェクトの全体設定をまとめるために必須です。以下のようなケースで特に活用します。

  • プロジェクトのビルド設定やルーティングのカスタマイズ
  • 環境変数の読み込みやAPIのベースURL設定
  • プラグインやミドルウェアの登録
  • CSSやビルド時のトランスパイル設定
  • モジュールの追加や設定

逆に、個別のコンポーネントやページ単位のロジックはここに書くべきではありません。設定ファイルはあくまでグローバルな設定に限定し、細かいロジックは各ファイルに分離しましょう。

また、動的に変わる値をnuxt.config.tsに直接書くのは避け、環境変数や外部設定ファイルで管理するのがベストプラクティスです。

実務でよくあるユースケースとサンプルコード

1. 環境変数の設定と利用

開発・本番環境でAPIのエンドポイントを切り替えたい場合、nuxt.config.tsで環境変数を設定します。

export default defineNuxtConfig({
  runtimeConfig: {
    public: {
      apiBase: process.env.API_BASE_URL || 'https://api.example.com'
    }
  }
})

コンポーネント内で以下のように利用可能です。

const config = useRuntimeConfig()
console.log(config.public.apiBase)

2. プラグインの登録

外部ライブラリをプラグインとして登録し、アプリ全体で使いたい場合。

export default defineNuxtConfig({
  plugins: ['~/plugins/myPlugin.ts']
})

3. CSSやグローバルスタイルの設定

グローバルCSSを一括で読み込みたい場合。

export default defineNuxtConfig({
  css: ['~/assets/css/main.css']
})

よくある落とし穴・注意点

SSRとCSRの違いによる設定の影響

nuxt.config.tsの設定はサーバーサイドレンダリング(SSR)とクライアントサイドレンダリング(CSR)の両方に影響します。例えば、プラグインの登録時にssr: falseを指定しないと、サーバー側で動かないライブラリが原因でエラーになることがあります。

Hydrationエラーの原因に注意

設定ミスでクライアントとサーバーのレンダリング結果が異なるとHydrationエラーが発生します。例えば、環境変数の値がビルド時と実行時で異なる場合などです。runtimeConfigを使い、実行時に値を注入する方法が推奨されます。

パフォーマンスへの影響

不要なモジュールやプラグインを登録するとビルドサイズが増え、パフォーマンス低下の原因になります。設定は必要最低限に絞り、使わない設定は削除しましょう。

まとめ

nuxt.config.tsはNuxtアプリの心臓部とも言える重要な設定ファイルです。ここでの設定がアプリ全体の挙動を決めるため、正しく理解し適切に管理することが求められます。
TypeScript対応のdefineNuxtConfigを使うことで安全かつ効率的に設定でき、環境変数やプラグインの管理も一元化できます。
実務では環境ごとの設定切り替えやプラグイン登録、グローバルCSSの管理などで活用しつつ、SSR/CSRの違いやHydrationエラーに注意しながら運用しましょう。

Nuxtの設定をマスターすることで、より安定した高品質なアプリケーション開発が可能になります。