2012-06-29 27 views
7

En proyectos web en mi máquina local, estoy usando una configuración Sass bastante simple. En la misma carpeta, tengo /scss/style.scss y /css/style.css¿Puedo usar Sass con un script por lotes en Windows

Así que para ejecutar Sass mientras trabajo sólo escribo esto en un terminal de Ruby:

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

funciona bien , pero es un poco engorroso, así que estoy tratando de descubrir cómo hacer el equivalente con un script por lotes. He intentado lo siguiente, pero es un desastre completo, y mi computadora intenta abrir una cantidad infinita de consolas 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 

Creo que lo que tengo que hacer es iniciar Ruby ejecutándose en segundo plano, en lugar de abrir el Ruby exe. ¿Alguien sabe cómo, o es así incluso cómo funciona Ruby? Obviamente, soy nuevo en las secuencias de comandos de Sass, Ruby y por lotes, por lo que cualquier idea que pueda darme sería de gran ayuda, gracias.


EDIT: Tengo que trabajar así

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" 

creo que debería ser más ordenado, y sospecha que Sass necesita tener es $ trayectoria del sistema.


EDIT 2: He definido la variable Path para Ruby, mediante estas instrucciones: http://groups.google.com/group/beginning-rails/browse_thread/thread/1c68665013a60081

En mi caso, el camino que tenía que añadir era C: \ Ruby193 \ bin Ahora la única línea I necesitar, cuando tengo el guión en la raíz del proyecto web, es:

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

Podría mantener la parte donde cambio el directorio a la ubicación de las carpetas si quisiera tener algo que pueda ejecutarse desde cualquier lugar de mi computadora. Sin embargo, el hecho de que el script no especifique la ubicación del proyecto significa que puedo simplemente copiarlo en cualquier proyecto donde use la misma estructura.

Vale la pena el esfuerzo? En el largo plazo, probablemente, sí.

+0

Puede hacerlo usando el prompt Ruby CMD, y simplemente ejecutando 'sass --watch'. –

+0

Lo sé, eso no es lo que estoy pidiendo. – daveyfaherty

Respuesta

4

Simplemente ponga sus dos comandos originales en su archivo por lotes. Entonces el contenido del archivo .bat sería:

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

Simple como eso. Un archivo por lotes como este simplemente ejecuta cada comando en cada línea uno después del otro, como si estuvieras escribiendo cada uno individualmente.

+0

Hmm Creo que esa sería la respuesta correcta si configurara Sass correctamente. Buscando establecer $ PATH para ello ahora. – daveyfaherty

+1

No necesitas Sass en el camino, solo Ruby. Sass es un Rubygem, por lo que si Ruby y Gems se configuran correctamente, ejecutar el comando sass desde cualquier lugar de tu sistema de archivos funcionará. Para verificar, eche un vistazo en \ Ruby193 \ bin para el archivo sass.bat. Luego verifique para asegurarse de que \ Ruby193 \ bin esté en su camino. Cuando instala sass, los archivos ejecutables que lo ejecutan se instalan automáticamente en la carpeta bin de Ruby de esta manera. –

+0

Sí, era el Camino bien. ¡Solo necesita un comando ahora! Aclamaciones. – daveyfaherty

2

Si usted está tratando de actualizar varios archivos CSS con un archivo por lotes así:

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

... pero sólo ejecuta la primera línea de comandos SCSS, y el archivo por lotes nunca se completa, es decir, nunca se ve el 'Hecho'. Aquí está el por qué y cómo solucionarlo:

scss es en realidad un archivo por lotes defectuoso que no puede devolver el control al archivo por lotes.He arreglado esta pasando por alto el archivo por lotes y SCSS runing rubí y es joya SCSS directamente de la siguiente manera:

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

Usted necesita tener su camino señalado al rubí, o poner una ruta absoluta en el anterior.

+0

+1 Exactamente el problema que acabo de golpear - ¡gracias! –

Cuestiones relacionadas