Tailwind CSS v4: @sourceがNext.jsの[...slug]にマッチしない
Tailwind CSS v4でglobパターンがNext.jsのcatchallルートを検出しない問題
概要
Tailwind CSS v4で@sourceディレクティブを使用してソースファイルを指定する際、./**/*.{js,ts,jsx,tsx}のようなglobパターンがNext.jsの[...slug]などのcatchallルートセグメントを含むディレクトリにマッチしない問題です。
エラーメッセージ
エラーメッセージは表示されませんが、[...slug]ディレクトリ内のファイルで使用しているTailwindクラスがCSSに含まれません。
| |
原因
- globパターンの解釈:
[と]はglobパターンで特殊文字(文字クラス)として解釈される - ファイルシステムのエスケープ:
[...slug]の[がglobの文字クラス開始として認識される - 上流ライブラリの問題: Tailwindが使用する
@parcel/watcherやglobライブラリの動作
解決策
1. 追加の@sourceパターンを指定
| |
[[]と[]]はglobのエスケープ構文で、リテラルの[と]にマッチします。
2. 自動検出を使用(推奨)
| |
3. 特定のディレクトリを明示的に指定
| |
4. content設定で対応(v3互換)
| |
5. safelist を使用
| |
6. PostCSS設定で対応
| |
よくある間違い
[と]をエスケープせずにglobパターンで使用する- Next.jsの動的ルート(
[id]、[[...slug]])がすべて検出されると仮定する source(none)を設定した後、すべてのソースパスを正しく指定しない
関連エラー
参考リンク
この記事は役に立ちましたか?