WEB・アプリ開発

Undefined mixinというerrorがmiddleman build実行時に発生した場合の対処法

middleman build実行時にエラーが発生

以下のようなエラーが発生しました。


エラーの全量ログはこちら

原因はscssのパーシャルにアンダーバーがなかったこと

当サイトのメインのscssはall.scssで以下のように多くのパーシャルをimportしています。


sassやscssのパーシャルはファイル名の頭にアンダーバーがないと、パーシャルだと認識されず、メインのファイルと認識されてしまいます。そこで、all.scssとは違う独自のスコープを持ってしまいUndefined mixinと言われてしまうということです。

私が独自に作ったscssは全てファイル名の頭にアンダースコアをつけていませんでしたので、つけました。例えば、laoyout/main.scssというファイルはlayout/_main.scssというように変えたところ正常にmiddleman buildを実行できました。

スポンサーリンク

middleman serverで動かしている時はエラーは発生しない

今回はmiddleman build時に初めて気づきました。でも、理由はわかりませんが、ローカルの環境でmiddleman serverで動かしている時には発生しません。

参考