2012-09-13 20 views
11

Tôi muốn biên dịch tập hợp các tệp .scss thành các tên tệp khác nhau.SASS/Compass có thể biên dịch foo.scss thành foo.min.css và foo.dbg.css không?

Trong quá trình phát triển, tôi muốn biên dịch ví dụ: foo.scss đến foo.dbg.css (chưa được xác minh và có nhận xét). Trong sản xuất, tôi muốn có ví dụ. foo.min.css (đã được rút ngắn).

Có cách nào để cho SASS/Compass biết sử dụng làm tiện ích mở rộng đích không? Một chuyển đổi dòng lệnh? Tùy chọn config.rb?

Viết tập lệnh đầu tiên biên dịch và sau đó đổi tên tệp có vẻ như một tùy chọn không tốt, vì sau đó tôi không thể sử dụng hiệu quả compass watch.

(Vâng, tôi thể biên dịch để hai thư mục đầu ra khác nhau và sau đó viết một kịch bản mà bản sao các tập tin từ đó Mà cảm thấy một chút vụng về..)

UPDATE: tôi làm việc xung quanh vấn đề bằng cách viết một phiên bản đơn giản của mã đồng hồ. Khi một cái gì đó thay đổi, nó kích hoạt một biên dịch lại cho hai thư mục đầu ra khác nhau, sau đó đổi tên và di chuyển các tập tin để đặt.

+0

tôi m thực sự quan tâm đến * cách giải quyết của bạn *! Bạn có thể chia sẻ nó cho chúng tôi không? – yckart

+1

Xin chào @tuomassalo, tôi cũng quan tâm đến cách giải quyết nếu bạn có cơ hội đăng nó. – mtpultz

Trả lời

4

Không, không thể. Tôi đã hỏi cùng một câu hỏi trong danh sách gửi thư về bảng định kiểu RTL. Tuy nhiên, bạn có thể chạy la bàn biên dịch bằng cách sử dụng các tệp 'config.rb' khác nhau. Hãy thử compass compile -c debug.rb.

CẬP NHẬT: La bàn vẫn không thể, nhưng Gulp có thể xem và tạo một số tệp css đích bằng Sass và La bàn. Xem https://github.com/Snugug/gulp-css-target/

+0

Tôi không biết liệu bạn có thể chạy hai thiết bị đầu cuối có 'la bàn đồng hồ 'trên cùng một dự án hay không. Nhưng nếu bạn có thể, sau đó bạn đã nhận nó;) –

+0

Điều này vẫn đúng? – mtpultz

+0

@mtpultz nếu có ai đó cố gắng và báo cáo kết quả tốt hơn, tôi sẽ vui vẻ cập nhật câu trả lời này. nhật ký chào mừng :) –

2

Bạn có thể thêm cấu hình này vào cấu hình của mình.

Xin xem https://github.com/sbspk/Prepros/issues/38

require 'fileutils' 

on_stylesheet_saved do |file| 

    if file.match('.min') == nil 

    require 'compass' 

    Compass.add_configuration(
     { 
      :project_path => File.dirname(File.dirname(file)), 
      :sass_dir => File.basename(File.dirname(file)), 
      :css_path => File.basename(File.dirname(file)), 
      :output_style => :compressed 
     }, 
     'alwaysmin' # A name for the configuration, can be anything you want 
    ) 
    Compass.compiler.compile(File.dirname(file) + "/" + File.basename(file, '.css') + '.scss', File.dirname(file) + "/" + File.basename(file, '.css') + ".min.css") 

    end 

end 
6

tôi có thể không nhận được câu trả lời Alireza Fattahi để làm việc vì nó ném lỗi vì vậy tôi tìm thấy một ví dụ khác mà làm việc cho tôi

http://h3r2on.com/2013/05/17/rename-css-on-compile.html

require "fileutils" 

on_stylesheet_saved do |file| 
    if File.exists?(file) 
    filename = File.basename(file, File.extname(file)) 
    File.rename(file, css_dir + "/" + filename + ".min" + File.extname(file)) 
    end 
end 
+0

Cảm ơn! Đã có cùng một vấn đề với câu trả lời của Alireza. – mtpultz

+1

đây là câu trả lời đúng :) – numediaweb

+0

Không hoạt động nếu nó nằm trong thư mục. Ví dụ về tài sản/scss/module1/module1.scss phải là asset/css/module1/module1.min.css nhưng trở thành asset/css/module1.min.css – vee

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