.output
Nuxt は、アプリケーションをプロダクション用にビルドする際に .output/ ディレクトリを作成します。
このディレクトリは、ビルド出力をリポジトリにプッシュしないようにするために、.gitignore ファイルに追加する必要があります。
このディレクトリを使用して、Nuxt アプリケーションをプロダクションにデプロイします。
こちらも参照 getting-started > deploymentnuxt build を実行するとディレクトリ全体が再作成されるため、中のファイルには触れないでください。
tips
このセクションは公式ドキュメントの翻訳ではなく、本サイト独自の補足記事です。
Nuxt の .output ディレクトリとは?〜プロダクションビルドの要〜
Nuxt でアプリケーションをプロダクション用にビルドすると、.output というディレクトリが自動的に生成されます。このフォルダは、ビルド後の成果物をまとめて格納する場所であり、実際のデプロイ時にサーバーやホスティング環境へアップロードする対象となります。
この仕組みがあることで、開発中のソースコードとビルド済みのファイルを明確に分離でき、運用やデプロイの効率化、トラブルシューティングのしやすさが向上します。
まず結論:.output ディレクトリのポイント
.outputは Nuxt のプロダクションビルド成果物を格納する専用フォルダ- デプロイ時はこのディレクトリの中身をサーバーに配置する
nuxt buildコマンド実行時に毎回再生成されるため、手動での編集は避ける.gitignoreに追加してリポジトリに含めないのが一般的- SSR・静的サイト生成(SSG)どちらのモードでも
.outputは重要な役割を持つ
いつ使うべきか?使わない方がよいケースは?
.output は基本的にプロダクション環境へのデプロイ時に使います。開発中はホットリロードや開発サーバーを使うため、直接触ることはほとんどありません。
使うべきケース
- 本番環境にビルド済みファイルをアップロードする際
- Docker イメージのビルド時に成果物をコピーする場合
- CI/CD パイプラインでビルド成果物をアーティファクトとして扱う場合
使わない方がよいケース
- 開発中に
.output内のファイルを直接編集すること .outputを Git 管理下に置くこと(ビルド成果物は環境依存のため)- ビルドコマンドを実行せずに古い
.outputを使い回すこと(不整合の原因)
実務でよくあるユースケースとサンプルコード
1. Docker コンテナでのデプロイ
Dockerfile で .output をコピーし、Node.js サーバーとして起動する例です。
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install --production
COPY .output .output
EXPOSE 3000
CMD ["node", ".output/server/index.mjs"]
このように .output 配下のサーバーファイルを直接実行して Nuxt アプリを起動します。
2. CI/CD パイプラインでのビルド成果物管理
GitHub Actions や GitLab CI でビルド後に .output をアーティファクトとして保存し、別ジョブでデプロイに利用する例。
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: npm ci
- run: npm run build
- uses: actions/upload-artifact@v3
with:
name: nuxt-output
path: .output
deploy:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v3
with:
name: nuxt-output
- run: rsync -avz .output/ user@server:/var/www/nuxt-app/
3. 静的サイト生成(SSG)での利用
nuxt generate コマンドを使う場合も .output/public に静的ファイルが出力されます。これを CDN や静的ホスティングにアップロードします。
よくある落とし穴・注意点
1. .output の直接編集は厳禁
nuxt build を実行すると .output は毎回クリーンアップされて再生成されます。手動でファイルを編集すると変更が消えてしまうため、ビルド設定やソースコード側で調整しましょう。
2. Git 管理に含めない
.output は環境依存のビルド成果物なので、.gitignore に必ず追加してください。誤ってコミットするとマージコンフリクトや不要な差分が発生します。
3. SSR と CSR の違いに注意
SSR モードでは .output/server にサーバー用のコードが生成され、CSR(クライアントサイドレンダリング)用のファイルは .output/public に配置されます。両者の役割を理解し、適切にデプロイ先を設定しましょう。
4. Hydration エラーの原因に
ビルドと実行環境の不整合(Node.js バージョン違いや依存パッケージの差異)があると、Hydration エラーやレンダリング不具合が起きやすいです。.output はビルド環境と同じ条件で実行することが重要です。
まとめ
.output ディレクトリは Nuxt アプリのプロダクションビルド成果物をまとめる重要なフォルダです。開発中は触らず、ビルド後のデプロイやCI/CDで活用しましょう。Git 管理から除外し、ビルドコマンドで毎回再生成されることを理解することで、安定した運用が可能になります。
適切に .output を扱うことで、Nuxt アプリの本番環境へのデプロイがスムーズになり、トラブルも減らせます。ぜひ実務での運用に役立ててください。
※このページは Nuxt.js 公式ドキュメントの翻訳ページです。
公式ドキュメントの該当ページはこちら:
https://nuxt.com/docs/3.x/guide/directory-structure/output