🦁
npm run dev で Tailwind が効かなくなった原因と対策
🛑 起きたエラー
ある日、開発環境で npm run dev を実行したところ、Tailwind CSS のスタイルが適用されなくなった。
前日まで問題なく動作していたのに、突然見た目が崩れてしまった。
🔍 症状
-
tailwind.config.jsは変えていないのに Tailwind が効かなくなった -
globals.cssの@tailwindの記述は問題なし -
npm run build && npm startでも直らない -
npx tailwindcss -i ./app/globals.css -o ./app/output.css --watchではエラーなし
💡 原因
色々調査した結果、shadcn のコンポーネントを追加した際に npm install が実行され、それに伴って autoprefixer が削除されたことが原因だった。
🔎 詳細な原因
-
shadcn のコンポーネントを追加すると
npm installが自動実行されるnpx shadcn-ui@latest add button- shadcn は 新しいコンポーネントを追加するときに
package.jsonを更新し、自動的にnpm installを実行する。
- shadcn は 新しいコンポーネントを追加するときに
-
このとき、
postcss.config.jsが削除されていた-
postcss.config.jsがないと、autoprefixerは不要な依存関係と判断され、npm install実行時に削除された可能性がある。
-
-
結果として、Tailwind のスタイルが適用されなくなった
-
autoprefixerはpostcss.config.jsで設定されることが多く、これが消えたことで Tailwind のutilitiesが正しく動作しなくなった。
-
🛠️ 対策
この問題を防ぐために、以下の対策を実施する。
✅ autoprefixer を package.json に明示的に追加
autoprefixer が npm install で削除されないように、明示的に package.json に追加 する。
npm install -D autoprefixer
これで、今後 npm install を実行しても autoprefixer が消えることはない。
✅ postcss.config.js を復活させる
postcss.config.js を削除すると、Tailwind が正常に機能しなくなる可能性がある。
再作成して、以下の内容を設定する。
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
};
その後、キャッシュをクリアして npm run dev を再起動 する。
rm -rf node_modules .next
npm install
npm run dev
🎯 まとめ
| 問題 | 原因 | 対策 |
|---|---|---|
npm run dev で Tailwind が効かなくなった |
shadcn の追加時に npm install が実行され、autoprefixer が削除された |
autoprefixer を package.json に明示的に追加 |
postcss.config.js がないと Tailwind が動かない |
postcss.config.js が削除されると autoprefixer が消える可能性がある |
postcss.config.js を復活させる |
npm install で意図せず依存関係が変わる |
shadcn のコンポーネント追加時に npm install が自動実行される |
git status や git diff package-lock.json で変更を確認 |
以上です。
Discussion