gatsby-browser.jsにグローバルCSSの import を集約
gatsbyを使って開発していると、たまに下記のwarningが出力される。
warn chunk commons [mini-css-extract-plugin] Conflicting order. Following module has been added: * css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[9].oneOf[0].use[1]!./node_modules/postcss-loader/ dist/cjs.js??
そのログは エラーではなく “警告(warn)” で、結論としてはこうです。
-
✅ 動作自体は続行されます(
gatsby developが落ちる原因ではないことが多い) -
⚠️ ただし CSS の適用順がビルドごとに変わる可能性があり、見た目が崩れるリスクはあります
内容は **mini-css-extract-plugin の「CSS の順序が衝突して最適な順番に並べられない」**という警告です。
何が原因?
ざっくり言うと、あなたのプロジェクトでは
-
src/css/bodystyle.cssみたいな グローバルCSS -
*.module.scssみたいな CSS Modules(SCSS) -
複数ページ/テンプレートでの import
が混ざっていて、Webpack が
「この順番で入れたい要求がページごとに矛盾してる」
状態になっています。
例:Aページは bodystyle.css → blogDetail.module.scss を希望
Bページは blogDetail.module.scss → footer.css を希望
…みたいに “望ましい順序” がページによって食い違うと発生します。
放置していい?
✅ まずは放置でOK(開発中は特に)
-
ほとんどの場合は 見た目がたまたま崩れない
-
Gatsby の dev では よく見る警告です
ただし「たまに CSS が勝ったり負けたりして崩れる」なら対処した方が良いです。
対処法
対処:グローバルCSSの import を「1箇所」に集約(最も正攻法)
グローバルCSSは “入口” で一回だけ読み込むのが安定です。
Gatsby なら典型は:
gatsby-browser.js を作る(なければ)
そして、各コンポーネントやページからは 同じグローバルCSSの import を消す。
👉 これで順序が固定されて警告が消えることが多いです。