Symfonyで tailwind:build が失敗?原因と解決策を解説

Symfonyで tailwind:build が失敗?原因と解決策を解説

SymfonyでTailwind CSSを導入する際、便利なバンドルとしてsymfonycasts/tailwind-bundleを利用することができます。このバンドルを使うことで、Tailwind CSSを簡単にビルドし、Symfonyのアセット管理と統合できます。

しかし、ある日 tailwind:build コマンドを実行すると、突然エラーが発生しました。本記事では、発生した問題の原因と解決方法について解説します。

SymfonyでTailwind CSSを導入する方法

SymfonyにTailwind CSSを導入する方法はいくつかありますが、最も簡単なのは symfonycasts/tailwind-bundle を使う方法です。

1
$ composer require symfonycasts/tailwind-bundle

これにより、SymfonyのバンドルとしてTailwindを組み込むことができます。バンドルを利用すると、以下のように tailwind:build コマンドでCSSをビルドできます。

1
$ php bin/console tailwind:build

tailwind:build のエラー発生

実際に tailwind:build を実行したところ、以下のエラーが発生しました。

1
Built Tailwind CSS file does not exist: run "php bin/console tailwind:build" to generate it

エラーの原因は tailwind-bundle のバージョンとTailwind CLIの仕様変更

調査した結果、エラーの原因は symfonycasts/tailwind-bundle の バージョンが古かったこと にありました。使用していたバージョンは 0.6.1 であり、これを 0.7.1 にアップデートすることで問題が解決しました。

Tailwind 4系のCLIが使用されていた

もう少し詳しく説明すると、tailwind:build コマンドを実行する際、バンドルは var/tailwind 配下に Tailwind CSS の Standalone CLI をダウンロードする仕様になっています。

しかし、symfonycasts/tailwind-bundle の 0.6.1 までは、使用するTailwind CLIのバージョンを指定できなかったため、 最新のCLI(4系)が自動的にダウンロードされてしまう問題 がありました。
この結果、Tailwind v4系のCLIが使われてしまい、ビルドが失敗するという状況に陥りました。

binary_version の設定で解決

この問題に対応するため、symfonycasts/tailwind-bundle の 0.7.0 から 使用するTailwind CLIのバージョンを binary_version で指定できる機能 が追加されました。

さらに 0.7.1 では、デフォルトの binary_version が v3.4.17 に固定され、バンドルをアップデートするだけで Tailwind 3系を利用できるようになりました。

該当するコード

このため3系のcliがダウンロードできるようにエラーが回避できたというわけです。

解決方法:バージョンをアップデートする

この問題を解決するためには、symfonycasts/tailwind-bundle を最新版にアップデートするだけでOKです。

1
composer update symfonycasts/tailwind-bundle

また、Symfonyアプリケーションで config/packages/tailwind.yaml に binary_version を指定することで、使用するTailwind CLIのバージョンを明示的に指定できます。

1
2
tailwind:
    binary_version: v3.4.17

まとめ

  • SymfonyでTailwind CSSを使うには symfonycasts/tailwind-bundle が便利
  • しかし、バージョン 0.6.1 以前ではTailwind CLIのバージョン指定ができず、 最新の4系が勝手にダウンロードされる問題 が発生
  • 0.7.1 にアップデートすることでデフォルトで v3.4.17 が使われるようになり、問題解決
  • SymfonyでTailwind CSSを使う際は、 バンドルのアップデート情報を定期的にチェック することが大切

SymfonyとTailwind CSSを組み合わせて使う方は、ぜひバージョン管理に注意してください。

カテゴリ

comments powered by Disqus