Sass - si può essere compilato in fase di esecuzione?
-
09-10-2019 - |
Domanda
Ho visto che alcuni Rails CMS (come radiante) hanno plugin che essenzialmente compilano Sass quando una pagina si accede. C'è un modo per fare questo in un rotaie regolare app? Sta facendo così performante? Fondamentalmente, io sto guardando un modo per rimuovere il passaggio aggiuntivo di correre Compass per compilare i miei fogli di stile.
Soluzione
non ho usato bussola specifico, ma ci sembra che ci sia una bandiera di produzione in modo da file vengono compilati - non potevo immaginare che avevano costruirlo ricompilare per richiesta della produzione, Radiant compila del css all'avvio applicazione e, se si poi commettere quei file CSS generati non tenta di generare di nuovo per quanto ne so.
Altri suggerimenti
Sass e Compass si integrano automaticamente con Rails. Se stai usando Rails 3, tutto quello che dovete fare è aggiungere al vostro gem "haml"
Gemfile e tutti i file e .sass
.scss
in public/stylesheets/sass
otterrà compilato per i file .css
in public/stylesheets
.
Compila per richiesta? Penso che potrebbe essere un successo per le prestazioni. Si dovrebbe utilizzare una strategia di caching in quel caso. In modo che compila il foglio di stile solo se non si trova nella cache.
Si potrebbe creare un metodo di supporto setup_stylesheet che si prenderà cura di impostare il foglio di stile CSS. Si chiama questo metodo sul layout dell'applicazione.
setup_stylesheet sarà verificare se il foglio di stile CSS è in cache, e se è lì allora usarlo. Se non lo è, quindi compilarlo.
Un altro approccio:
È possibile impostare un initialiser che chiamerà Compass per compilare i fogli di stile SASS, quando viene lanciato l'App.
- sta facendo così performante?
Ci sarà un massiccia calo di prestazioni quando si compila in fase di esecuzione.
Come NEX3 (autore di Sass gemma ) ha sottolineato su un altro forum , non c'è bisogno alcuna necessità di correre compass watch
.
I caldamente di mettere il seguente in production.rb: Sass::Plugin.options[:never_update] = true
- questo è particolarmente importante se siete su Heroku. (Si potrebbe anche fare questo nel file di rack, dove è anche possibile specificare altre opzioni
Hmm, buona fortuna