2012-06-29 11 views
7

Nei progetti Web sul mio computer locale, sto utilizzando una configurazione Sass abbastanza semplice. Nella stessa cartella, ho /scss/style.scss e /css/style.cssPosso usare Sass con uno script batch in Windows

Quindi, per eseguire Sass, mentre io lavoro ho appena scritto questo in un terminale Rubino:

cd "C:\Users\Puppybeard\Documents\Aptana Studio 3 Workspace\Project Title" 
sass --watch scss/style.scss:css/style.css 

funziona bene , ma è un po 'macchinoso, quindi sto cercando di capire come fare l'equivalente con uno script batch. Ho provato quanto segue, ma è un disastro completo e il mio computer tenta di aprire una quantità infinita di console Ruby.

cd "C:\Ruby193\bin" 
start ruby 
cd "C:\Users\Puppybeard\Documents\Aptana Studio 3 Workspace\Project Title" 
sass --watch scss/style.scss:css/style.css 
exit 

Penso che quello che devo fare è avviare Ruby in background, piuttosto che aprire Ruby exe. Qualcuno sa come, o è così anche come funziona Ruby? Ovviamente, sono nuovo di Sass, Ruby e script in batch, quindi qualsiasi intuizione che tu possa darmi sarebbe di grande aiuto, grazie.


EDIT: ho ottenuto che funziona in questo modo

cd "\Ruby193\bin" 
sass --watch "C:\Users\Puppybeard\Documents\Aptana Studio 3 Workspace\Project Title\scss\style.scss:C:\Users\Puppybeard\Documents\Aptana Studio 3 Workspace\Project Title\css\style.css" 

penso che dovrebbe essere più ordinato, e il sospetto che sass ha bisogno di avere è $ PATH set.


EDIT 2: ho impostato la variabile Path per Ruby, utilizzano queste istruzioni: http://groups.google.com/group/beginning-rails/browse_thread/thread/1c68665013a60081

Nel mio caso, il percorso avevo bisogno di aggiungere è C: \ Ruby193 \ bin Ora l'unica linea che bisogno, quando ho lo script nella root del progetto web, è:

sass --watch SCSS/style.scss: css/style.css

Potrei mantenere la parte in cui cambio la directory nella posizione delle cartelle se volessi avere qualcosa che possa essere eseguito da qualsiasi parte del mio computer. Tuttavia, il fatto che lo script non specifichi la posizione del progetto significa che posso semplicemente copiarlo in qualsiasi progetto in cui utilizzo la stessa struttura.

Vale la pena? A lungo termine, probabilmente, sì.

+0

Si può fare usando il prompt Ruby CMD, e semplicemente eseguendo 'sass --watch'. –

+0

Lo so, non è quello che sto chiedendo. – daveyfaherty

risposta

4

Basta inserire i due comandi originali nel file batch. Quindi il contenuto del file .bat sarebbe:

cd "C:\Users\Puppybeard\Documents\Aptana Studio 3 Workspace\Project Title" 
sass --watch scss/style.scss:css/style.css 

Semplice come quello. Un file batch come questo esegue semplicemente ogni comando su ciascuna riga uno dopo l'altro, come se stessi scrivendo singolarmente ciascuno.

+0

Hmm Penso che sarebbe la risposta giusta se avessi impostato correttamente Sass. Esaminando ora l'impostazione del $ PATH. – daveyfaherty

+1

Non hai bisogno di Sass nel percorso, solo Ruby. Sass è un Rubygem e quindi se Ruby e le gem sono impostate correttamente, il comando sass da qualsiasi parte del filesystem funzionerà correttamente. Per controllare, dare un'occhiata a \ Ruby193 \ bin per il file sass.bat. Quindi verifica che \ Ruby193 \ bin si trovi nel tuo percorso. Quando si installa sass, i file eseguibili che lo eseguono vengono installati automaticamente nella cartella bin di Ruby in questo modo. –

+0

Sì, era il sentiero tutto a posto. Ha solo bisogno di un comando ora! Saluti. – daveyfaherty

2

Se stai cercando di aggiornare più file css con un file batch come questo:

scss A.scss ../CSS/A.css 
scss B.scss ../CSS/B.css 
echo Done. 

... ma solo la prima riga di comando SCSS esegue, e il file batch mai completa, vale a dire non si vede mai il Fatto. Ecco perché e come risolverlo:

scss è in realtà un file batch buggato che non riesce a restituire il controllo al file batch.Ho fissato questo bypassando il file batch e SCSS runing rubino ed è SCSS gioiello direttamente come segue:

ruby C:/Ruby193/bin/scss A.scss ../CSS/A.css 
ruby C:/Ruby193/bin/scss B.scss ../CSS/B.css 
echo Done. 

Avrete bisogno di avere il percorso rilevare al rubino, o mettere un percorso assoluto al precedente.

+0

+1 Esattamente il problema che ho appena colpito - grazie! –

Problemi correlati