💨
Next.js と Tailwind でCSSをいじったときにコンパイルが遅い問題をなんとかする
TL;DR
@tailwind utilities;
は巨大なので、頻繁に変更するファイルでインポートするとこれを含めて再コンパイルされるから遅い。
別のファイルに切り出してから、使うところで一緒にインポートすれば問題ない。
効果
どのくらい速くなるのかは実際に見てもらうのが早いと思います。(シャレではない)
上がwith-tailwindcss
テンプレートのデフォルトで、下がこの記事の手順を踏んだ場合です。
手順
このコミットを見ればわかると思いますが一応
next.jsのexampleにあるwith-tailwindcss
テンプレートを例として用意します。
yarn create next-app --example with-tailwindcss with-tailwindcss-app
-
styles/index.css
で@tailwind
でインポートしている部分を消す -
styles/tailwind.css
,styles/tailwind-util.css
を作成し、
styles/tailwind.css
の中で@tailwind base;
,@tailwind components;
をインポート。
styles/tailwind-util.css
の中で@tailwind utilities;
をインポートする。 -
_app.js
でstyles/tailwind.css
,styles/index.css
,styles/tailwind-util.css
の順でインポートする - おわり
備考
最初はproductionのときだけpurgeする設定についてても書いてたんですが、どうやらデフォルトでdevelopmentのときは無効になるようでコンパイル時間が変わらなかったので省きました。
Discussion