Nuxt 設定ファイル
Nuxt ではデフォルトの設定でほとんどのユースケースをカバーしています。nuxt.config.js を使ってこの設定を上書きすることができます。
nuxt.config.js
alias
このオプションで JavaScript や CSS で利用可能なエイリアスを定義できます。
import { resolve } from 'path'
export default {
alias: {
'style': resolve(__dirname, './assets/style')
}
}
build
このオプションで、loaders、filenames や webpack の設定、transpilation を含む build ステップにおけるさまざまな設定を行うことができます。
export default {
build: {
/*
** ここで webpack の設定を拡張することができます。
*/
extend(config, ctx) {}
}
}
css
このオプションで、グローバルに(すべてのページで)利用したい CSS ファイル/モジュール/ライブラリを指定できます。
export default {
css: ['~/assets/css/main.css', '~/assets/css/animations.scss']
}
nuxt の設定ファイルで、css プロパティの配列に記述する CSS、SCSS、Postcss、Less、Stylus などのファイルの拡張子は省略することができます。
export default {
css: ['~/assets/css/main', '~/assets/css/animations']
}
拡張子を省略することで、例えば css ファイルを使用していて sass を使うように変更した場合でも、ファイル名が同じままであれば新しい拡張子が使用されるので、nuxt.config を更新する必要はありません。
dev
このオプションで、Nuxt の development または production モードを定義できます。(Nuxt をプログラム上で使う際に重要です)
export default {
dev: process.env.NODE_ENV !== 'production'
}
env
このオプションを使うと、NODE_ENV=staging や VERSION=1.2.3 のように、ビルド時(ランタイムではなく)に必要な環境変数を定義することができます。ただし、ランタイム環境変数の場合は runtimeConfig が必要です。
export default {
env: {
baseURL: process.env.BASE_URL
}
}
runtimeConfig
ランタイム設定にはより良いセキュリティと高速な開発のため dotenv サポートが組み込まれています。ランタイム設定は Nuxt ペイロードに追加されるので、開発中、サーバーサイドレンダリング、またはクライアントサイドのみのアプリケーションで作業する際に、ランタイム設定を更新するためにリビルドする必要はありません。(静的サイトでは変更を確認するためにサイトをリビルドする必要があります)
.env サポート
もしプロジェクトのルートディレクトリに .env ファイルがあるなら、自動的に process.env にロードされ、nuxt.config / serverMiddleware またはそれらがインポートする別のファイル内からアクセスできます。
--dotenv <file> を使用してパスをカスタマイズすることができ、また --dotenv false を使用して完全に無効にすることができます。例えば本番、ステージング、開発環境で違う .env ファイルを指定することができます。
publicRuntimeConfig
- フロントエンドに公開されるのでパブリックな env 変数はすべて保持しなければなりません。例として公開 URL への参照を含めることができます。
-
サーバーとクライアントの両方で
$configを使って利用できます。
export default {
publicRuntimeConfig: {
baseURL: process.env.BASE_URL || 'https://v2.nuxt.com'
}
}
privateRuntimeConfig
- プライベートでフロントエンドでは公開されてはいけないすべての env 変数を保持しなければなりません。例として API のシークレットトークンへの参照を含めることができます。
-
サーバーのみで同じく
$configを使って利用できます。(publicRuntimeConfig を上書きします)
export default {
privateRuntimeConfig: {
apiSecret: process.env.API_SECRET
}
}
設定値を使用する:
ページ、ストア、コンポーネント、プラグインのコンテキストを使って、this.$config や context.$config を使用することで、どこからでもこれらの値にアクセスすることができます。
<script>
asyncData ({ $config: { baseURL } }) {
const posts = await fetch(`${baseURL}/posts`)
.then(res => res.json())
}
</script>
テンプレートの中では、$config.* を使って直接ランタイム設定にアクセスできます。
<template>
<p>Our Url is: {{ $config.baseURL}}</p>
</template>
$config を使用した場合(例えば fetch、 asyncData、 あるいはテンプレート内で直接 $config を使用した場合など)、プライベートな設定が公開される可能性があります。generate
このオプションで、Nuxt によって HTML ファイルに変換されるアプリケーション内のすべての動的ルートのパラメータを設定することができます。
export default {
generate: {
dir: 'gh_pages', // dist/ の代わりに gh_pages/ を設定する
subFolders: false // HTML ファイルがルートパスに従って生成されます
}
}
head
export default {
head: {
title: 'my title',
meta: [
{ charset: 'utf-8' },
.....
]
}
}
このオプションで、アプリケーションのデフォルトのメタタグを全て指定できます。
loading
このオプションで、Nuxt のデフォルトのローディングコンポーネントをカスタマイズできます。
export default {
loading: {
color: '#fff'
}
}
modules
このオプションで、プロジェクトに Nuxt モジュールを追加できます。
export default {
modules: ['@nuxtjs/axios']
}
modulesDir
modulesDir プロパティは、モジュールディレクトリの設定でパス解決のために使用します。例えば Webpack の resolveLoading、 nodeExternals や postcss です。設定パスは options.rootDir (デフォルト: process.cwd())からの相対パスになります。
export default {
modulesDir: ['../../node_modules']
}
プロジェクトが Yarn ワークスペーススタイルのモノリポジトリで構成されている場合はこのフィールドが必要になるかもしれません。
plugins
このオプションで、ルートの Vue.js アプリケーションをインスタンス化する前に実行したい JavaScript plugin を指定できます。
export default {
plugins: ['~/plugins/url-helpers.js']
}
router
`router オプションで、Nuxt のデフォルトの Vue Router 設定を上書きできます。
export default {
router: {
linkExactActiveClass: 'text-primary'
}
}
server
このオプションで、Nuxt アプリケーションのサーバーインスタンスにおける接続変数を設定できます。
import path from 'path'
import fs from 'fs'
export default {
server: {
https: {
key: fs.readFileSync(path.resolve(__dirname, 'server.key')),
cert: fs.readFileSync(path.resolve(__dirname, 'server.crt'))
}
}
}
srcDir
このオプションで、Nuxt アプリケーションのソースディレクトリを指定できます。
export default {
srcDir: 'client/'
}
client ディレクトリにある Nuxt アプリケーションのプロジェクト構造の例です。
**-| app/
---| node_modules/
---| nuxt.config.js
---| package.json
---| client/
------| assets/
------| components/
------| layouts/
------| middleware/
------| pages/
------| plugins/
------| static/
------| store/**
dir
このオプションで、Nuxt のディレクトリのカスタムネームを指定できます。
export default {
dir: {
pages: 'views' // Nuxt は pages/ フォルダの代わりに views/ を探します。
}
}
pageTransition
このオプションで、ページトランジションのデフォルトプロパティを指定できます。
export default {
pageTransition: 'page'
}
その他の設定ファイル
nuxt.config.js の他にもプロジェクトのルートに .eslintrc 、prettier.config.json や .gitignore などの設定ファイルがあるかもしれません。これらは linter やコードフォーマッタ、git リポジトリなどの他のツールを設定するために使われ、nuxt.config.js から切り離されています。
.gitignore
.gitignore ファイルに以下の項目を追加して、バージョン管理から無視かつ追加されないようにする必要があります。node_modules フォルダはインストールしたモジュールがすべて入っているフォルダです。nuxt フォルダは、dev コマンドや build コマンドを実行したときに作成されるフォルダです。dist フォルダは generate コマンドの実行時に作成されるフォルダです。
node_modules .nuxt dist
この次は?
Sébastien Chopin
Nazaré da Piedade
Nobu
川音리오
Maciek Palmowski
Nestor Vera
Daniel Roe
Yue Yang
Jeronimas
Clément Ollivier
Alexander Lichter
N3-rd
Adrien Zaganelli
Mag
Stefan Huber
Olga Bulat
Paiva
Florian Reuschel
Savas Vedova
HIJACK
Vinícius Alves
Kareem Dabbeet
Valentín Costa
Ryan Skinner
Alex Hirzel
Ajeet Chaulagain
René Eschke
Nico Devs
Muhammad
Naoki Hamada
Tom
Yann Aufray
Anthony Chu
Nuzhat Minhaz
Lucas Portet
Richard Schloss
Bobby
bpy
Antony Konstantinidis
Hibariya
Jose Seabra
Eze
Florian Lefebvre
Lucas Recoaro
Julien SEIXAS