設定

Nuxt は、生産性を高めるために合理的なデフォルト設定で構成されています。

Nuxt はデフォルトでほとんどのユースケースに対応するように構成されています。nuxt.config.ts ファイルで、このデフォルト設定をオーバーライドまたは拡張できます。

Nuxt設定

nuxt.config.ts ファイルは Nuxt プロジェクトのルートにあり、アプリケーションの動作をオーバーライドまたは拡張できます。

最小限の設定ファイルは、設定を含むオブジェクトを格納する defineNuxtConfig 関数をエクスポートします。defineNuxtConfig ヘルパーは、インポートなしでグローバルに利用できます。

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

このファイルは、カスタムスクリプトの追加、モジュールの登録、レンダリングモードの変更など、ドキュメントで頻繁に言及されます。

すべてのオプションは、設定リファレンスに記載されています。
Nuxt でアプリケーションを構築するために TypeScript を使用する必要はありません。ただし、nuxt.config ファイルには .ts 拡張子を使用することを強くお勧めします。これにより、IDE のヒントを利用して、設定の編集中のタイプミスや間違いを防ぐことができます。

環境ごとのオーバーライド

nuxt.config で、完全に型付けされた環境ごとのオーバーライドを設定できます。

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

Nuxt CLI コマンドを実行するときに環境を選択するには、次のように --envName フラグに名前を渡すだけです。nuxt build --envName staging

これらのオーバーライドの背後にあるメカニズムの詳細については、c12 のドキュメントを参照してください。環境固有の設定.

レイヤーを作成している場合、$meta キーを使用して、あなたまたはレイヤーのコンシューマーが使用する可能性のあるメタデータを提供することもできます。

環境変数とプライベートトークン

runtimeConfig API は、環境変数などの値をアプリケーションの他の部分に公開します。デフォルトでは、これらのキーはサーバーサイドでのみ利用できます。runtimeConfig.publicruntimeConfig.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() コンポーザブルを使用してアプリケーションの他の部分に公開されます。

app/pages/index.vue
<script setup lang="ts">
const runtimeConfig = useRuntimeConfig()
</script>
Docs > 4 X > Guide > Going Further > Runtime Configで詳細をお読みください。

アプリの設定

ソースディレクトリ (デフォルトでは app/) にある app.config.ts ファイルは、ビルド時に決定できるパブリック変数を公開するために使用されます。runtimeConfig オプションとは異なり、これらは環境変数を使用してオーバーライドすることはできません。

最小限の設定ファイルは、設定を含むオブジェクトを格納する defineAppConfig 関数をエクスポートします。defineAppConfig ヘルパーは、インポートなしでグローバルに利用できます。

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

これらの変数は、useAppConfig コンポーザブルを使用してアプリケーションの他の部分に公開されます。

app/pages/index.vue
<script setup lang="ts">
const appConfig = useAppConfig()
</script>
詳細については、ドキュメント > 4 X > ガイド > ディレクトリ構造 > アプリ設定 を参照してください。

runtimeConfig vs. app.config

前述のとおり、runtimeConfigapp.config は両方とも変数をアプリケーションの他の部分に公開するために使用されます。どちらを使用すべきかを判断するためのガイドラインをいくつか示します。

  • runtimeConfig: ビルド後に環境変数を使用して指定する必要があるプライベートまたはパブリックトークン。
  • app.config: ビルド時に決定されるパブリックトークン、テーマバリアント、タイトル、機密性のないプロジェクト設定などのウェブサイト設定。
機能runtimeConfigapp.config
クライアントサイドハイドレーションバンドル
環境変数✅ はい❌ いいえ
リアクティブ✅ はい✅ はい
型サポート✅ 部分的✅ はい
リクエストごとの設定❌ いいえ✅ はい
ホットモジュールリプレースメント❌ いいえ✅ はい
非プリミティブ JS 型❌ いいえ✅ はい

外部設定ファイル

Nuxt は nuxt.config.ts ファイルを単一の情報源として使用し、外部設定ファイルの読み込みをスキップします。プロジェクトの構築中に、これらの設定が必要になる場合があります。次の表は、一般的な設定と、該当する場合、Nuxt でそれらを構成する方法を強調しています。

名前設定ファイル設定方法
Nitronitro.config.tsnuxt.confignitro キーを使用
PostCSSpostcss.config.jsnuxt.configpostcss キーを使用
Vitevite.config.tsnuxt.configvite キーを使用
webpackwebpack.config.tsnuxt.configwebpack キーを使用

その他の一般的な設定ファイルの一覧を次に示します。

名前設定ファイル設定方法
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 ファイルで行うことができます。

nuxt.config.ts
export default defineNuxtConfig({
  vite: {
    vue: {
      customElement: true,
    },
    vueJsx: {
      mergeProps: true,
    },
  },
})
詳細については、ドキュメント > 4 X > API > 設定 > Nuxt Config#vue を参照してください。

webpack を使用する場合

webpack を使用し、vue-loader を設定する必要がある場合は、nuxt.config ファイル内の webpack.loaders.vue キーを使用してこれを行うことができます。利用可能なオプションは、こちらで定義されています.

nuxt.config.ts
export default defineNuxtConfig({
  webpack: {
    loaders: {
      vue: {
        hotReload: true,
      },
    },
  },
})
詳細については、ドキュメント > 4 X > API > 設定 > Nuxt Config#loaders を参照してください。

Vue の実験的機能の有効化

propsDestructure などの Vue の実験的機能を有効にする必要がある場合があります。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 に移行されました。Vue Macros には、Nuxt 統合.

詳細については、ドキュメント > 4 X > API > 設定 > Nuxt Config#vue 1 を参照してください。