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 functierequire
functies 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