Sass - peut-il être compilé lors de l'exécution?
-
09-10-2019 - |
Question
Je l'ai vu que certains Rails CMSes (comme Radiant) ont des plugins qui compilent essentiellement Sass lorsqu'une page est accessible. Est-il possible de le faire dans une application régulière des rails? Une telle démarche est performant? Au fond, je suis à la recherche d'un moyen de supprimer l'étape supplémentaire de course Compass pour compiler mes feuilles de style.
La solution
Je n'ai pas utilisé la boussole en particulier, mais il semble qu'il y ait un drapeau de production si les fichiers sont compilés - je ne pouvais pas imaginer qu'ils avaient construire à recompiler par demande, dans la production, Radiant compile de css au démarrage de l'application et si vous puis valider les fichiers CSS générés, il ne cherche pas à les générer à nouveau AFAIK.
Autres conseils
Sass et Compass intègrent automatiquement avec Rails. Si vous utilisez Rails 3, tout ce que vous avez à faire est d'ajouter à votre gem "haml"
Gemfile et tous les fichiers .sass
et .scss
dans public/stylesheets/sass
va obtenir compilé des fichiers .css
dans public/stylesheets
.
Compile par demande? Je pense que ce pourrait être un succès pour la performance. Vous devez absolument utiliser une stratégie de mise en cache dans ce cas. Alors qu'il compile la feuille de style que si elle est pas dans le cache.
Vous pouvez créer une méthode d'assistance setup_stylesheet qui prendra soin de mettre en place la feuille de style css. Vous appelez cette méthode sur la mise en application.
setup_stylesheet va vérifier si la feuille de style css est sur le cache, et si elle est là, utilisez-le. Dans le cas contraire, puis le compiler.
Une autre approche:
Vous pouvez configurer un appel qui initialiseur Compass pour compiler vos feuilles de style SASS lorsque l'application est lancée.
- va si performant?
Il y aura une performance énorme hit lors de la compilation lors de l'exécution.
NEX3 (auteur de joyau Sass de ) a sur un autre forum, il n'y a pas besoin besoin de courir compass watch
.
Je vous conseille fortement de mettre ce qui suit dans production.rb: Sass::Plugin.options[:never_update] = true
- ceci est particulièrement important si vous êtes sur Heroku. (Vous pouvez aussi le faire dans votre fichier rack, où vous pouvez également spécifier autres options
Hmm, bonne chance