新・HTMLサイトにTailwindCSSを組み込んでみた

2024.05.03 09:00
2024.05.03 11:34
新・HTMLサイトにTailwindCSSを組み込んでみた

HTMLのみのサイトにTailwindCSSを組み込んでみました。reactやvue、laravelなどTailwindCSS以外のフレームワーク・ライブラリは一切使用しません。バージョンはTailwindCSS3系です。

尚、この記事は以前書いた記事の改訂版です。

1. インストール

まずはプロジェクトディレクトリに移動して、npmの初期化処理をする必要があるようです。

npm init -y

次にtailwindcss本体やプラグインなどのインストールです。こんな感じでライブラリ周りも一緒に入れるみたいです。

npm install tailwindcss@latest autoprefixer@latest postcss@latest 

次に設定ファイルを作成する必要があるようです。以下を実行したら、tailwind.config.jsが作成されました。

npx tailwindcss init

2. 環境設定

どうも下準備が必要のようです。作業用のsrcディレクトリと、出力用のoutディレクトリを作成します。

mkdir src
mkdir out

つくったsrcにtailwind.cssを作成して以下を書き込むようです。

@tailwind base;
@tailwind components;
@tailwind utilities;

tailwind.config.jsを変更します。
outディレクトリにhtmlファイルがあるので、contentで指定します。
これがないと反映しないみたいですね。

/** @type {import('tailwindcss').Config} */
module.exports = {
  content: [
    "./out/**/*.{html,js}",
  ],
  theme: {
    extend: {},
  },
  plugins: [],
}

outディレクトリに本番用のファイルを作ります。たとえばindex.htmlなどです。このフォルダの中身がまるごと公開用のファイル群になるようです。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" media="all" href="output.css" />
  <title></title>
</head>
<body>
  <h1 class="text-4xl">タイトル</h1>
</body>
</html>

3. ビルド

最後にビルドをすることで初めて一般で見える状態になるみたいです。package.jsonにビルドのコマンドを登録します。scriptsのtestの下に「dev」と「build」を追加しています。

{
  "name": "app",
  "version": "1.0.0",
  "description": "",
  "main": "tailwind.config.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev"  : "npx tailwindcss -i ./src/tailwind.css -o ./out/output.css --watch",
    "build": "npx tailwindcss -i ./src/tailwind.css -o ./out/output.css"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "autoprefixer": "^10.4.13",
    "postcss": "^8.4.21",
    "tailwindcss": "^3.2.7"
  }
}

「dev」は開発時に使うもので、ファイルを変更したら即座に反映してくれます。「build」は完成前の最後に実行します。
というわけで以下のコマンドでビルドをします。

npm run build

4. 確認

outディレクトリにcssが吐き出されましたので、ブラウザから確認します。
demoを用意したので見てみましょう。

demo

無事反映していましたね。

今回は以上です!