1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Laravel7.x] TailwindcssをインストールしてアイコンにFontAwesomeを使う

Last updated at Posted at 2021-03-18

#今回の題
最新のtailwindcssのドキュメントにはLaravelへのインストール方法が乗っています。
https://tailwindcss.com/docs/guides/laravel

ただ、見る限りこのドキュメントが想定しているバージョンはLaravel8のようなので、それ以前のバージョンだとドキュメント通りにやっても上手くいきません。(webpack.mix.jsの記述が異なるため)。

なので、それ以前のバージョンのLaravelだと少し書き方を変える必要があります。
ここでは私が主に使っているlaravel7系にインストールしてみます。

#手順

##tailwindcssのインストール
インストール。

npm install tailwindcss

resources/sass/app.scssを以下のように変更。

resources/sass/app.scss
@tailwind base;
@tailwind components;
@tailwind utilities;

次に、Tailwind config fileの作成。
必須ではないですが、カスタムしたりPurgeオプションを使ってビルドサイズを縮小することができるので作成することをお勧めします。

npx tailwindcss init

そうしたら、プロジェクトディレクトリにtailwind.config.jsが出来ているので以下のように編集します。
※vueファイルは必要に応じて書き換えてください。

ctailwind.config.js
module.exports = {
   purge: [
     './resources/**/*.blade.php',
     './resources/**/*.js',
     './resources/**/*.vue',
   ],
  darkMode: false, // or 'media' or 'class'
  theme: {
    extend: {},
  },
  variants: {},
  plugins: [],
}

次にwebpack.mix.jsを書き換えます。
この設定は、tailwindcssのv1.9.0のドキュメントにあるものです。
最新v2.0.3のドキュメントはLaravel8向きなので注意。

webpack.mix.js
const mix = require('laravel-mix');
const tailwindcss = require('tailwindcss');

mix.js('resources/js/app.js', 'public/js')
    .sass('resources/sass/app.scss', 'public/css')
    .options({
        processCssUrls: false,
        postCss: [ tailwindcss('./tailwind.config.js') ],
    });

コンパイル。
watchでもhotでもお好きなように。

npm run dev

そしたら、tailwindcssが使えるか確認。
簡単なカードを作ったので表示してみます。

resource/view/welcome.blade.php
<!doctype html>
<html>
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <link rel="stylesheet" href="{{ mix('css/app.css') }}">
</head>
<body>

<div class="container mx-auto flex justify-center my-10">
  <div class="border-2 border-gray-300 p-6 shadow-md rounded-lg">
    <div>
      <p class="text-lg text-gray-600">Hello Tailwindcss</p>
    </div>
  </div>
</div>

</body>
</html>

ビルトインサーバーを立ち上げて、、

php artisan serve

スクリーンショット 2021-03-19 2.36.27.png

画像のようになっていればOK。

##fontawesomeのインストール

フリー版を使います。
フリーとはいえ1,609種類のアイコンが揃っており、さらに商用利用も可能な凄まじい子です。

インストール。

npm install --save @fortawesome/fontawesome-free

resources/sass/app.scss に以下を追記します。

resources/sass/app.scss
@import '~@fortawesome/fontawesome-free/scss/fontawesome';
@import '~@fortawesome/fontawesome-free/scss/solid';
@import '~@fortawesome/fontawesome-free/scss/regular';
@import '~@fortawesome/fontawesome-free/scss/brands';

webpack.mix.jsに1行追記。

webpack.mix.js
const mix = require('laravel-mix');
const tailwindcss = require('tailwindcss');

mix.js('resources/js/app.js', 'public/js')
    .sass('resources/sass/app.scss', 'public/css')
    .copyDirectory('node_modules/@fortawesome/fontawesome-free/webfonts', 'public/webfonts') // 追記
    .options({
        processCssUrls: false,
        postCss: [ tailwindcss('./tailwind.config.js') ],
    });

コンパイル。

npm run dev

以上!!!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?