Relativ sökväg till sass-cache

Häromdagen sprang jag på en bugg i Compass medan jag gick igenom och reviderade mitt workflow och min projektmall.

För alla mina projekt skapar jag en mapp i min mapp med projekt (som i sin tur ligger i min Dropbox för att kunna nå filerna från alla mina enheter). I projektmappen ligger oftast en mapp med material från kunden, en mapp med mina egna Photoshop-filer (och annan grafik som inte ska laddas upp på servern) samt en mapp för kod.

Projekt
- Material
- Photoshop
- Source Code

Mappen med kod är sedan den mapp som jag använder i min editor och som innehåller alla filer som ska versionhanteras och laddas upp på servern. Eftersom jag oftast använder Sass och Compass för snabbare och bättre hantering av CSS och sprites läggs config.rb direkt i kodmappen och sedan Sass- och CSS-filer i varsin mapp i assets.

Sass skapar under kompileringen en mapp för cache med namnet .sass-cache för att snabba upp processen med att kompilera stilmallar och bilder. Detta gör en stor skillnad när man jobbar med stora stilmallar eller har många bilder vilket annars kan ta ganska lång tid.

För att rensa i min kodmapp och ha så lite saker som möjligt i roten ville jag flytta cache-mappen en nivå upp i strukturen. Enligt dokumentationen för Sass och Compass skulle detta vara enkelt och lösas genom att lägga sass_options = {:cache_location => "../.sass-cache"} i konfigurationen, men det visades fel…

Medan denna lösning fungerar alldeles utmärkt när man använder sig av sass-kommandot klarar inte Compass av sökvägar som hänvisar till nivån ovanför i :cache_location utan ignorerar den nya sökvägen både i _cache_location och i css_dir-inställningen vilket leder till att CSS-filerna genereras i samma mapp som Sass/SCSS-filerna.

Med god hjälp av Chris Eppstein lyckades jag hitta en lösning som också fungerar med Compass, dock med nackdelen att sass-kommandot då fallerar på samma sätt som Compass då man använder sass_options.

För att summera så finns de båda lösningarna för att placera sass-cache högre upp i mappstrukturen, en för sass och en för Compass.

sass

sass_options = {:cache_location => "../.sass-cache"}

Compass

cache_dir = "../.sass-cache"

Jag har naturligtvis skapat en buggrapport på GitHub för detta problem så att man kan se över det och förhoppningsvis hitta någon lösning på problemet.

Publicerad:
  1. du kör väl dropbox på din server också så att du automatiskt synkar upp dina projekt? 🙂

    • Nej, deploy till servern körs automatiskt vid commit för respektive projekt. Ska försöka hitta lite tid framöver att skriva ett inlägg och beskriva mitt workflow.

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *