このリポジトリはPHP Webアプリフレームワークである、LaravelのLTSバージョンである5.5の公式英文ドキュメントを日本語へ翻訳しています。
This project is maintained by okinaka
LaravelはJavaScriptやCSSプリプロセッサの使用を規定してはいませんが、開発時点の元としてほとんどのアプリケーションで役立つだろうBootstrapとVueを提供しています。これらのフロントエンドパッケージをインストールするため、LaravelはNPMを使用しています。
CSSをもっと楽しく取り扱うために役立つ、変数やmixinなどのパワフルな機能を通常のCSSへ付け加え、SASSとLESSをコンパイルするため、Laravel Mixはクリーンで表現的なAPIを提供しています。このドキュメントでは、CSSコンパイル全般について簡単に説明します。SASSとLESSのコンパイルに関する情報は、Laravel Mix documentationで確認してください。
アプリケーションを構築するために、特定のJavaScriptフレームワークやライブラリの使用をLaravelは求めていません。しかし、Vueライブラリを使用した近代的なJavaScriptを書き始めやすくできるように、基本的なスカフォールドを用意しています。Vueはコンポーネントを使った堅牢なJavaScriptアプリケーションを構築するために、記述的なAPIを提供しています。CSSに関しては、Laravel Mixを使用し、JavaScriptコンポーネントをブラウザでそのまま使用できる1ファイルへ、簡単に圧縮できます。
アプリケーションから、フロントエンド向けにスカフォールドした結果を削除したい場合は、preset
Artisanコマンドを使用します。このコマンドをnone
オプションと一緒に使うと、アプリケーションからBootstrapとVue向けのスカフォールド結果を削除し、空のSASSファイルといくつかのJavaScriptユーティリティライブラリだけが残ります。
php artisan preset none
Laravelのpackage.json
ファイルは、アプリケーションのフロントエンドのプロトタイピングを開始するのに便利なように、bootstrap-sass
パッケージを含んでいます。しかし、アプリケーションでの必要性に応じ、自由にパッケージをpackage.json
ファイルに追加/削除してください。Laravelアプリケーションを構築するため、Bootstrapフレームワークを使用する必要はありません。Bootstrapを選んでいる開発者にとって、開発しやすいように用意してあるだけです。
CSSのコンパイルを始める前に、プロジェクトのフロントエンド開発に必要な依存パッケージである、Nodeプロジェクトマネージャー(NPM)を使用し、インストールしてください。
npm install
npm install
を使い、依存パッケージをインストールし終えたら、Laravel Mixを使用して、SASSファイルを通常のCSSへコンパイルできます。npm run dev
コマンドはwebpack.mix.js
ファイル中の指示を処理します。通常、コンパイル済みCSSはpublic/css
ディレクトリへ設置されます。
npm run dev
Laravelにデフォルトで含まれるwebpack.mix.js
は、resources/assets/sass/app.scss
SASSファイルをコンパイルします。このapp.scss
ファイルはSASS変数のファイルと、ほとんどのアプリケーションの構築開始時に役に立つBootstrapをロードします。望みどおりにapp.scss
を自由にカスタマイズし、さらにLaravel Mixを設定することで、まったく別のプリプロセッサを使用することさえ可能です。
アプリケーションで要求されている、JavaScriptの全依存パッケージは、プロジェクトルートディレクトリにあるpackage.json
ファイルで見つかります。このファイルはcomposer.json
ファイルと似ていますが、PHPの依存パッケージの代わりにJavaScriptの依存が指定されている点が異なります。依存パッケージは、Node package manager (NPM)を利用し、インストールできます。
npm install
{tip} JavaScriptアプリケーションを構築開始するために役立つよう、
vue
やaxios
のようなパッケージがデフォルトでLaravelのpackage.json
ファイルに含まれています。自身のアプリケーションの要求に合わせ、package.json
ファイルへ自由に追加、削除してください。
webpack.mix.js
file:パッケージをインストールしたら、npm run dev
コマンドでアセットをコンパイルできます。Webpackは、モダンなJavaScriptアプリケーションのための、モジュールビルダです。npm run dev
コマンドを実行すると、Webpackはwebpack.mix.js
ファイル中の指示を実行します。
npm run dev
デフォルトでLaravelのwebpack.mix.js
ファイルは、SASSとresources/assets/js/app.js
ファイルをコンパイルするように指示しています。app.js
ファイルの中で、Vueコンポーネントを登録してください。もしくは、他のフーレムワークが好みであれば、自分のJavaScriptアプリケーションの設定を行えます。コンパイル済みのJavaScriptは通常、public/js
ディレクトリへ出力されます。
{tip}
app.js
ファイルは、Vue、Axios、jQuery、その他のJavaScript依存パッケージを起動し、設定するresources/assets/js/bootstrap.js
ファイルをロードします。JacaScript依存パッケージを追加した場合、このファイルの中で設定してください。
インストールしたてのLaravelアプリケーションは、デフォルトとして、resources/assets/js/components
ディレクトリの中にExampleComponent.vue
Vueコンポーネントを持っています。ExampleComponent.vue
ファイルは、JacaScriptとHTMLテンプレートを同じファイル中で定義している、シングルファイルVueコンポーネントの一例です。シングルファイルコンポーネントは、JavaScript駆動アプリケーションを構築するために、とても便利なアプローチを提供しています。app.js
ファイルで登録されています。このコンポーネントサンプルは、app.js
ファイル中で登録されています。
Vue.component(
'example-component',
require('./components/ExampleComponent.vue')
);
アプリケーションでコンポ―エントを使用するには、HTMLの定形コードを挿入するだけです。たとえば、アプリケーションの認証のスカフォールドを行うために、make:auth
Artisanコマンドを実行し、スクリーンを登録したら、home.blade.php
Bladeテンプレートにコンポーネントを挿入できます。
@extends('layouts.app')
@section('content')
<example-component></example-component>
@endsection
{tip} Vueコンポーネントを変更したら、毎回
npm run dev
コマンドを実行しなくてはならないことを覚えておきましょう。もしくは、npm run watch
コマンドを実行して監視すれば、コンポーネントが更新されるたび、自動的に再コンパイルされます。
もちろん、Vueコンポーネントの記述を学ぶことに興味があれば、Vueフレームワーク全体についての概念を簡単に読み取れる、Vueドキュメントを一読してください。
JavaScriptアプリケーションの構築に、Reactを使いたければ、Laravelは簡単にVueのスカフォールドをReactのスカフォールドへ簡単に変更します。真新しいLaravelアプリケーションで、react
オプションを付け、preset
コマンドを使用してください。
php artisan preset react
このコマンド一つで、Vueのスカフォールドを削除し、サンプルコンポーネントを含んだReactのスカフォールドを設置します。