Ruby on Rails
Activapijplijn
Zoeken…
Invoering
De activapijplijn biedt een raamwerk om JavaScript- en CSS-middelen samen te voegen en te verkleinen of te comprimeren. Het voegt ook de mogelijkheid toe om deze middelen in andere talen en pre-processors zoals CoffeeScript, Sass en ERB te schrijven. Hiermee kunnen activa in uw toepassing automatisch worden gecombineerd met activa van andere edelstenen. Jquery-rails bevat bijvoorbeeld een kopie van jquery.js en maakt AJAX-functies in Rails mogelijk.
Hark taken
Standaard worden sprockets-rails geleverd met de volgende harktaken:
-
assets:clean[keep]: verwijder oude gecompileerde activa -
assets:clobber: verwijder gecompileerde activa -
assets:environment: laad de compileeromgeving voor activa -
assets:precompile: compileer alle assets die worden genoemd inconfig.assets.precompile
Manifest bestanden en richtlijnen
In de assets initalizer ( config/initializers/assets.rb ) zijn enkele bestanden expliciet gedefinieerd om vooraf te worden gecompileerd.
# Precompile additional assets.
# application.coffee, application.scss, and all non-JS/CSS in app/assets folder are already added.
# Rails.application.config.assets.precompile += %w( search.js )
In dit voorbeeld worden de application.coffee en application.scss zogenaamde 'Manifest Files' genoemd. Deze bestanden moeten worden gebruikt om andere JavaScript- of CSS-middelen op te nemen. De volgende opdracht is beschikbaar:
-
require <path>: de functierequirefuncties vergelijkbaar met Ruby's eigenrequire. Het biedt een manier om een afhankelijkheid van een bestand in uw pad aan te geven en zorgt ervoor dat het slechts eenmaal voor het bronbestand wordt geladen. -
require_directory <path>: vereist alle bestanden in een enkele map. Het is vergelijkbaar metpath/*omdat het geen geneste mappen volgt. -
require_tree <path>: vereist alle geneste bestanden in een map. Het globale equivalent ispath/**/*. -
require_self: zorgt ervoor dat de hoofdtekst van het huidige bestand wordt ingevoegd voordat daaropvolgende richtlijnenrequire. Handig in CSS-bestanden, waar het indexbestand vaak algemene stijlen bevat die moeten worden gedefinieerd voordat andere afhankelijkheden worden geladen. -
stub <path>: verwijder een bestand dat wordt opgenomen -
depend_on <path>: hiermee kunt u een afhankelijkheid van een bestanddepend_on <path>zonder het op te nemen. Dit wordt gebruikt voor cachingdoeleinden. Wijzigingen in het afhankelijkheidsbestand maken de cache van het bronbestand ongeldig.
Een application.scss bestand kan er als volgt uitzien:
/*
*= require bootstrap
*= require_directory .
*= require_self
*/
Een ander voorbeeld is het bestand application.coffee . Hier met inbegrip van jquery en Turbolinks :
#= require jquery2
#= require jquery_ujs
#= require turbolinks
#= require_tree .
Als u geen CoffeeScript gebruikt, maar gewoon JavaScript, zou de syntaxis zijn:
//= require jquery2
//= require jquery_ujs
//= require turbolinks
//= require_tree .
Basisgebruik
Er zijn twee basismanieren waarop de activapijplijn wordt gebruikt:
Wanneer u een server in de ontwikkelingsmodus gebruikt, worden uw bedrijfsmiddelen onmiddellijk vooraf verwerkt en voorbereid.
In de productiemodus zult u het waarschijnlijk gebruiken om uw bedrijfsmiddelen vooraf te verwerken, te versiebeheer en te comprimeren en te compileren. U kunt dit doen door de volgende opdracht uit te voeren:
bundle exec rake assets:precompile