Est-il possible de définir un style différent de sortie SASS pour le développement et la production avec boussole dans des rails?

StackOverflow https://stackoverflow.com/questions/2386014

Question

Disons que je voudrais mettre un style imbriqué pour le développement et compressé pour la production. Il n'y a qu'une seule option dans le fichier de configuration Compass:

output_style = :compact # or :nested, :expanded, :compressed
Était-ce utile?

La solution

Il semble qu'il est assez facile:

output_style = RAILS_ENV == "production" ? :compressed : :nested

Pour le vérifier, je l'ai exécuter cette tâche de râteau dans des environnements différents (je devais changer la source SASS avant d'exécuter cette tâche):

namespace :sass do
  desc 'Updates stylesheets if necessary from their Sass templates.'
  task :update => :environment do
    Sass::Plugin.update_stylesheets
  end
end

Vous pouvez placer cette tâche dans le répertoire lib / tâches / sass.rake.

Sinon j'ai cette tâche en cours d'exécution dans mon Capistrano deploy.rb de mettre à jour automatiquement sur la production stylesheets au cours du déploiement:

after 'deploy:restart', 'sass:update'

namespace :sass do
  desc 'Updates the stylesheets generated by Sass'
  task :update, :roles => :app do
    invoke_command "cd #{current_release}; rake sass:update RAILS_ENV=production"
  end
end

Autres conseils

En plus de la réponse par Voldy je résolu le problème en créant un sass_config appelé initialiseur et de mettre cela en elle:

Sass::Plugin.options[:style] = case RAILS_ENV
  when 'production' then :compressed
  when 'staging' then :compact
  when 'development' then :expanded
  else
    :nested
end
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top