💭

Nuxt3 + Tailwindcss3(+daisy ui) 導入方法

2022/05/17に公開

Nuxt3にTailwindcss3を導入する方法をまとめました。
公式ドキュメントやyoutubeなどを見ましたが、古いバージョンの情報が混ざってたりして
分かりづらかったので、自分なりに簡潔にまとめました。

(tailwindcss3公式ドキュメント↓↓ 一応載せておきます...)
https://tailwindcss.com/docs/guides/nuxtjs

Nuxt3のインストールがまだの方はこちらの記事をお読みください。
https://zenn.dev/one_dock/articles/7447952bffecf9

導入方法

STEP 1

作成したプロジェクトディレクトリでtailwindcssをインストール

npm install -D tailwindcss@latest

@latestをつけると最新版がインストールされる(執筆時点では3.0.24)

導入チュートリアルを見ていると、postcssやautoprefixerもインストールしているものを見かけるが、Nuxt3では既に入っているので不要。

STEP 2

npx tailwindcss init

これで、tailwind.config.jsが作成される。

STEP 3

自動生成されたtailwind.config.jsに設定を追記する。

tailwind.config.js
module.exports = {
  content: [
    "app.vue", //app.vueでtailwindcssを使いたい場合
    "./components/**/*.{vue,js,jsx,ts,tsx}",
    "./pages/**/*.{vue,js,jsx,ts,tsx}",
  ],
  theme: {
    extend: {},
  },
  plugins: [],
};

STEP 4

assets/stylesディレクトリを作成し、tailwind.cssファイルを追加する。

assets/styles/tailwind.css
@tailwind base;
@tailwind components;
@tailwind utilities;

STEP 5

nuxt.config.tsに設定を追記する。

nuxt.config.ts
import { defineNuxtConfig } from 'nuxt'

//https://v3.nuxtjs.org/api/configuration/nuxt.config
export default defineNuxtConfig({
  css: ["@/assets/styles/tailwind.css"],
  build: {
    postcss: {
      postcssOptions: {
        plugins: {
          tailwindcss: {},
        },
      },
    },
  },
})

STEP 6

tailwindcssが適応されたか確認する。

app.vue
<template>
  <div>
    <!-- <NuxtWelcome /> -->
    <h1 class="pl-24 pt-12 text-3xl text-red-600 underline">
    Hello world!
  </h1>
  </div>
</template>

ローカル環境を立ち上げる

npm run dev

適応が確認できました。

全体のディレクトリ構成↓

STEP7 おまけ

tailwindcssのUIフレームワークであるdaisy uiも使えるようにする手順です。

daisy uiをインストールして、

npm i daisyui

tailwindcssの設定ファイルに追記するだけです。

tailwind.config.js
module.exports = {
  plugins: [require("daisyui")],
};

設定ファイル全体のコードはこんな感じになります。

tailwind.config.js
module.exports = {
  content: [
    "./components/**/*.{vue,js,jsx,ts,tsx}",
    "./pages/**/*.{vue,js,jsx,ts,tsx}",
  ],
  theme: {
    extend: {},
  },
  plugins: [require("daisyui")],
};

試しにapp.vueで使ってみます。

app.vue
<template>
  <div>
    <button class="btn">Hello daisyUI</button>
  </div>
</template>

こんなボタンが表示されてれば成功です。

↓は公式のインストール手順
https://daisyui.com/docs/install/

class="btn"を書くだけで、
ホバー時の色変や、クリック時のアニメーションとかまで実装されるのは最高に便利です
>.<

STEP 8 おまけ+

Visual Studio Codeを使っている場合は、拡張機能を入れましょう!
https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss
(公式ドキュメントでも紹介されていましたが、大分時間が経ってこの拡張機能の存在に気づきました..)

こんな風に入力時にサジェストしてくれるので、コーディングが楽になります。

これから大いに活躍してくれそうで楽しみです~

参考

参考にさせて頂きました。ありがとうございました!
https://zenn.dev/ztrehagem/articles/nuxt3tailwind
https://www.youtube.com/watch?v=dHbL4iZPyt0

Discussion