【Nuxt】nuxt.config.tsとは?入門者必見のnuxt.config.tsの説明
今回は入門者必見のnuxt.config.tsの説明の紹介です。
目次
- 1. nuxt.config.tsとは?
- 2. nuxt.config.ts
- 2.1. ENV:環境変数
- 2.2. SSR:レンダリングモード
- 2.3. TARGET:ターゲット
- 2.4. HEAD:ページヘッダー情報
- 2.5. CSS:グローバルスタイル
- 2.6. PLUGINS:プラグイン
- 2.7. COMPONENTS:コンポーネント自動インポート
- 2.8. BUILD_MODULES:開発モジュール
- 2.9. MODULES:モジュール
- 2.10. AXIOS:HTTPクライアント設定
- 2.11. CONTENT:コンテンツ設定
- 2.12. BUILD:ビルド設定
- 2.13. GENERATE:静的生成設定
- 2.14. ROUTER:ルーター設定
- 2.15. TAILWINDCSS:Tailwind CSS設定
- 2.16. PWA:プログレッシブウェブアプリ設定
nuxt.config.tsとは?
nuxt.config.tsは、Nuxt.jsプロジェクト全体の設定を記述するためのファイルです。
このファイルでは、アプリケーションの動作に関わる重要な設定(モジュール、環境変数、ルーティング、ビルド設定など)を一元管理します。
主な役割
- 環境ごとの設定管理:開発環境や本番環境で異なる設定を記述できます。
- モジュールやプラグインの登録:Nuxt.jsで使用する追加モジュールやプラグインを登録します。
- アプリケーションの構成管理:ページのヘッダー情報やCSS、ルーティング設定などを一箇所で管理できます。
- ビルドとデプロイの最適化:静的サイト生成やサーバーレンダリングの設定を最適化します。
export default defineNuxtConfig({
// 環境変数
env: {
BASE_PATH: process.env.BASE_PATH || ''
},
// サーバーサイドレンダリング設定
ssr: true,
// グローバルCSS
css: ['~/assets/css/global.css'],
// プラグイン
plugins: ['@/plugins/apiClient.ts'],
// モジュール
modules: ['@nuxtjs/axios', '@nuxtjs/pwa'],
// ビルド設定
build: {
extractCSS: true,
optimizeCSS: true
}
});
nuxt.config.ts
nuxt.config.tsについて詳しく説明します
import { defineNuxtConfig } from '@nuxt/types';
export default defineNuxtConfig({
env: {
BASE_PATH: process.env.BASE_PATH || ''
},
/*
** Nuxt rendering mode
*/
ssr: false,
/*
** Nuxt target
*/
target: 'static',
/*
** Headers of the page
*/
head: {
htmlAttrs: {
lang: 'ja',
prefix: 'og: http://ogp.me/ns#'
},
title: 'ページのタイトル',
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
{
hid: 'description',
name: 'description',
content:
'descriptionです'
},
{
hid: 'keywords',
name: 'keywords',
content:
'keywordsです'
}
],
link: [{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }],
script: [
{
src: 'https://example.com/custom-library.js'
},
{
id: 'analytics-script',
src: 'https://analytics.example.com/script.js'
}
]
},
/*
** Global CSS
*/
css: [
'~/assets/css/global.css', // グローバルなCSSファイル
'~/assets/scss/styles.scss' // SCSSファイル
],
/*
** Plugins to load before mounting the App
*/
plugins: [
'@/plugins/globalMixin.ts',
'@/plugins/apiClient.ts'
],
/*
** Auto import components
*/
components: true,
/*
** Nuxt.js dev-modules
*/
buildModules: ['@nuxt/typescript-build', '@nuxtjs/tailwindcss'],
/*
** Nuxt.js modules
*/
modules: [
'@nuxtjs/axios',
'@nuxtjs/pwa',
'@nuxt/content'
],
/*
** Axios configuration
*/
axios: {
baseURL: process.env.API_BASE_URL || 'https://api.example.com'
},
/*
** Content module configuration
*/
content: {
dir: 'content',
liveEdit: false
},
/*
** Build configuration
*/
build: {
extractCSS: true, // CSSを分離してビルド
optimizeCSS: true // CSSの最適化
},
generate: {
fallback: '404.html' // SPA向けの404ページ
},
router: {
middleware: ['auth']
},
tailwindcss: {
configPath: 'tailwind.config.js', // Tailwind CSSの設定ファイル
exposeConfig: true
},
pwa: {
manifest: {
name: 'Hoge',
lang: 'ja',
useWebmanifestExtension: false
}
}
});
ENV:環境変数
env: {
BASE_PATH: process.env.BASE_PATH || ''
}
- 内容:アプリ全体で使用する環境変数を定義します。
- 用途:APIのベースURLや他の設定値を環境ごとに動的に変更します。
SSR:レンダリングモード
ssr: false
- 内容:サーバーサイドレンダリング (SSR) を有効にするかどうか。
- 用途:falseの場合はクライアントサイドでのみレンダリング(SPA)。
TARGET:ターゲット
target: 'static'
- 内容:静的サイト (static) またはサーバーレンダリング (server) を選択。
- 用途:静的サイトの場合、ホスティング向けにビルドします。
HEAD:ページヘッダー情報
head: {
htmlAttrs: {
lang: 'ja',
prefix: 'og: http://ogp.me/ns#'
},
title: 'ページのタイトル',
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
{
hid: 'description',
name: 'description',
content: 'descriptionです'
},
{
hid: 'keywords',
name: 'keywords',
content: 'keywordsです'
}
],
link: [{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }],
script: [
{ src: 'https://example.com/custom-library.js' },
{ id: 'analytics-script', src: 'https://analytics.example.com/script.js' }
]
}
- TITLE:ブラウザタブや検索エンジンに表示されるページタイトル。
- META:
- DESCRIPTION:検索エンジンでのページ説明文。
- KEYWORDS:ページの関連キーワード(現在は評価対象外)。
- LINK:アイコンや外部リソースへのリンク。
- SCRIPT:外部スクリプトを追加します。
CSS:グローバルスタイル
css: [
'~/assets/css/global.css',
'~/assets/scss/styles.scss'
]
- 内容:アプリ全体で適用されるCSSやSCSSファイルを指定します。
PLUGINS:プラグイン
plugins: [
'@/plugins/globalMixin.ts',
'@/plugins/apiClient.ts'
]
- 内容:Nuxtアプリで使用するプラグインを定義します。
- 用途:
- globalMixin.ts:Vueのグローバルミックスインを登録。
- apiClient.ts:APIクライアントの初期化。
COMPONENTS:コンポーネント自動インポート
components: true
- 内容:手動でインポートせずにコンポーネントを利用可能にします。
BUILD_MODULES:開発モジュール
buildModules: ['@nuxt/typescript-build', '@nuxtjs/tailwindcss']
- 内容:開発用モジュールを設定します。
- 用途:
- @nuxt/typescript-build:TypeScriptのサポート。
- @nuxtjs/tailwindcss:Tailwind CSSのサポート。
MODULES:モジュール
modules: [
'@nuxtjs/axios',
'@nuxtjs/pwa',
'@nuxt/content'
]
- 内容:Nuxtで使用する外部モジュールを定義します。
- 用途:
- @nuxtjs/axios:HTTPリクエストの簡略化。
- @nuxtjs/pwa:PWA機能の追加。
- @nuxt/content:MarkdownやJSONデータを利用。
AXIOS:HTTPクライアント設定
axios: {
baseURL: process.env.API_BASE_URL || 'https://api.example.com'
}
- 内容:HTTPクライアントaxiosの基本設定を記述します。
CONTENT:コンテンツ設定
content: {
dir: 'content',
liveEdit: false
}
- 内容:Nuxt Contentモジュールの設定。
- 用途:
- DIR:コンテンツのディレクトリ名。
- LIVE_EDIT:リアルタイム編集の有効化/無効化。
BUILD:ビルド設定
build: {
extractCSS: true,
optimizeCSS: true
}
- 内容:アプリのビルド設定。
- 用途:
- EXTRACT_CSS:CSSを別ファイルに分離。
- OPTIMIZE_CSS:CSSの最適化。
GENERATE:静的生成設定
generate: {
fallback: '404.html'
}
- 内容:静的サイト生成時の設定。
- 用途:SPA向けの404ページを指定。
ROUTER:ルーター設定
router: {
middleware: ['auth']
}
- 内容:アプリケーションのルーター設定。
- 用途:ルートごとに認証ミドルウェアを追加。
TAILWINDCSS:Tailwind CSS設定
tailwindcss: {
configPath: 'tailwind.config.js',
exposeConfig: true
}
- 内容:Tailwind CSSの設定。
- 用途:
- CONFIG_PATH:設定ファイルのパス。
- EXPOSE_CONFIG:設定をアプリ内で利用可能にする。
PWA:プログレッシブウェブアプリ設定
pwa: {
manifest: {
name: 'Hoge',
lang: 'ja',
useWebmanifestExtension: false
}
}
- 内容:PWA用のマニフェストを設定。
- 用途:アプリ名や言語設定を記述。
以上、nuxt.config.tsの説明でした。