Je travaille actuellement sur une Gem qui, entre autres, doit regrouper le front commun entre plusieurs applications. Elle est basée sur Rails Engine et ses feuilles de styles sont en SASS. Bref, du classique.

La dummy app, tourne comme je veux et je commence donc à faire ma première migration d’une des applis qui doit exploiter ce front commun.

Et là, pas moyen d’afficher la moindre page, j’ai une erreur de SASS qui ne peut exploiter les variables.

Sass::SyntaxError - Undefined variable: "$badge-height".:

Ça sent les assets qui ne sont pas chargé dans le bon ordre. Je vérifie tout, les applications.scss, les @imports… rien d’anormal.

Et bien il se trouve que dans un initializer assets.rb j’avais cette ligne qui faisait charger par sprocket en vrac tous les styles et js.

Rails.application.config.assets.precompile += ['*.js', '*.css']

Donc tout ce qui était notion d’odre, de déclarer les variable SASS avant les utiliser, on oubliait. En supprimant cette ligne tout rentre dans l’ordre 😉