2012-06-29 29 views
7

Trong các dự án web trên máy cục bộ của mình, tôi đang sử dụng một thiết lập Sass khá đơn giản. Trong cùng một thư mục, tôi có /scss/style.scss và /css/style.cssTôi có thể sử dụng Sass với một tập lệnh batch trong Windows

Vì vậy, để chạy Sass trong khi tôi làm việc tôi chỉ viết những dòng này trong cửa sổ dòng lệnh Ruby:

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

trình tốt , nhưng nó hơi cồng kềnh, vì vậy tôi đang cố gắng tìm ra cách làm tương đương với một tập lệnh batch. Tôi đã thử những điều sau đây, nhưng đó là một thảm họa hoàn toàn, và máy tính của tôi cố gắng mở một số lượng vô hạn các bảng điều khiển 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 

Tôi nghĩ điều tôi cần làm là bắt đầu Ruby chạy trong nền, thay vì mở Ruby exe. Có ai biết làm thế nào, hoặc là ngay cả cách Ruby hoạt động? Rõ ràng, tôi mới sử dụng Sass, Ruby và các tập lệnh theo lô, vì vậy bất kỳ thông tin chi tiết nào bạn có thể cho tôi sẽ là một trợ giúp lớn, cảm ơn.


EDIT: Tôi đã nhận nó làm việc như thế này

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" 

Tôi nghĩ rằng nó nên gọn gàng hơn, và nghi ngờ sass mà cần phải có đó là $ PATH thiết lập.


EDIT 2: Tôi thiết lập các biến Path cho Ruby, sử dụng những hướng dẫn này: http://groups.google.com/group/beginning-rails/browse_thread/thread/1c68665013a60081

Trong trường hợp của tôi, con đường tôi cần phải thêm là C: \ Ruby193 \ bin Bây giờ dòng duy nhất tôi cần, khi tôi có kịch bản trong thư mục gốc của dự án web, là:

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

Tôi có thể giữ phần mà tôi thay đổi thư mục đến vị trí của các thư mục nếu tôi muốn có thứ gì đó có thể chạy từ bất cứ đâu trên máy tính của mình. Tuy nhiên, thực tế là các kịch bản không xác định vị trí dự án có nghĩa là tôi chỉ có thể sao chép nó vào bất kỳ dự án mà tôi sử dụng cùng một cấu trúc.

Đáng giá? Về lâu dài, có lẽ, vâng.

+0

Bạn có thể thực hiện bằng cách sử dụng dấu nhắc CMD CMD và chỉ chạy 'sass --watch'. –

+0

Tôi biết, đó không phải là những gì tôi yêu cầu. – daveyfaherty

Trả lời

4

Chỉ cần đặt hai lệnh gốc vào tệp lô của bạn. Vì vậy, nội dung của tệp .bat sẽ là:

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

Đơn giản như vậy. Một tập tin batch như thế này chỉ chạy mỗi lệnh trên mỗi dòng một cái khác, như thể bạn đang gõ từng cái một.

+0

Hmm Tôi nghĩ đó sẽ là câu trả lời đúng nếu tôi thiết lập Sass đúng cách. Nhìn vào thiết lập $ PATH cho nó ngay bây giờ. – daveyfaherty

+1

Bạn không cần Sass trên đường đi, chỉ có Ruby. Sass là một Rubygem và vì vậy nếu Ruby và đá quý được thiết lập một cách chính xác chạy lệnh sass từ bất cứ nơi nào trên hệ thống tập tin của bạn sẽ làm việc. Để kiểm tra, hãy xem trong \ Ruby193 \ bin cho tệp sass.bat. Sau đó kiểm tra để chắc chắn rằng \ Ruby193 \ bin nằm trong đường dẫn của bạn. Khi bạn cài đặt sass, các tập tin thực thi chạy nó sẽ tự động được cài đặt trong thư mục bin của Ruby như thế này. –

+0

Đúng, đó là con đường tất cả các quyền. Nó chỉ cần một lệnh ngay bây giờ! Chúc mừng. – daveyfaherty

2

Nếu bạn đang cố gắng để cập nhật nhiều file css với một tập tin batch như thế này:

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

... nhưng chỉ dòng lệnh SCSS đầu tiên thực hiện, và các tập tin thực thi không bao giờ hoàn tất, tức là bạn không bao giờ thấy 'Xong', đây là lý do và cách khắc phục:

scss thực sự là một tệp hàng loạt lỗi không trả lại quyền kiểm soát cho tệp lô của bạn.Tôi cố định này bằng cách bỏ qua các tập tin SCSS hàng loạt và runing ruby ​​và nó SCSS đá quý trực tiếp như sau:

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

Bạn sẽ cần phải có con đường của bạn trỏ tới ruby, hoặc đặt một đường dẫn tuyệt đối ở trên.

+0

+1 Chính xác vấn đề tôi vừa mới đánh - cảm ơn! –

Các vấn đề liên quan