2011-12-02 16 views
9

Một trong những tính năng gỡ lỗi yêu thích của tôi về SCSS là chỉ thị @warn và @debug, cả hai đều hỗ trợ gỡ lỗi. Tuy nhiên, khi tôi đặt một trong hai tệp này trong các tệp scss của tôi trong dự án Rails 3.1, chúng không xuất hiện trong stdout (từ chạy đuôi -f log/development.log)Làm cách nào để xem các chỉ thị SCSS @warn và @debug trong dự án Rails 3.1?

Có ai biết liệu có thể bật hay không để Sprockets/Rails không vô hiệu hóa chúng, và tôi có thể xem đầu ra trong luồng đầu ra.

Trả lời

7

Tôi chưa tìm thấy cách bật chúng trên nhật ký phát triển nhưng có thể đạt được điều tương tự bằng cách sử dụng sass --watch.

Đây là application.css.scss tôi mà chủ yếu là kéo file sass khác sử dụng @import sass (không sprockets * = đòi hỏi thấy here cho lý do tại sao..) Cho các biến/mixins/chức năng chia sẻ sử dụng:

/* 
*= require_self 
*= depend_on projects 
*/ 

@import "layout.css.scss"; 
@import "projects.css.scss"; 

layout.css.scss Bây giờ giả sử có biến này:

$main-color: #327B31; 

tôi có thể nhận được giá trị của nó trong tập tin project.css.scss

@debug "Main color is:" $main-color; 
@warn "Darker: " darken($main-color, 20%); 

tôi mở ra một cửa sổ và điểm cuối sass --watch tại file .scss chính mà kéo trong người khác

$ sass --watch app/assets/stylesheets/application.css.scss --stop-on-error --trace 
>>> Sass is watching for changes. Press Ctrl-C to stop. 
>>> Change detected to: /home/yuval/ws/books/railscasts/268-sass-basics/app/assets/stylesheets/projects.css.scss 
app/assets/stylesheets/projects.css.scss:5 DEBUG: "Main color is:" #327b31 
WARNING: "Darker: " #143214 
     on line 6 of app/assets/stylesheets/projects.css.scss 
     from line 16 of app/assets/stylesheets/application.css.scss 

    overwrite app/assets/stylesheets/application.css.css 

--stop-on-error là vì lỗi có xu hướng làm cho sass --watch thử lại nhiều lần mà tôi don không muốn. --trace cung cấp cho bạn một backtrace nếu một lỗi xảy ra.

Miễn là lỗi không xảy ra, nhật ký này sẽ tiếp tục làm mới với mỗi lần lưu.

Tôi thích cách tiếp cận này cũng vì nó là ruby ​​/ ray trung tính (mà nó nên được, có vẻ như) và do đó làm việc với bất cứ điều gì chạy sass.

Ngoài ra, tính năng này hoạt động nếu bạn đang sử dụng La bàn ở đầu Sass.

Chỉ cần kích hoạt la bàn trong tập tin application.css.scss của bạn (hoặc bất cứ tập tin .scss):

@import "compass"; 

và sau đó sử dụng ` 'la bàn watch```:

$ compass watch app/assets/stylesheets/application.css.scss --css-dir tmp/cache/ 

--css-dir tmp/cache/ được để tránh việc đồng hồ la bàn tạo tệp .css ghi đè các tệp .scs của bạn. Tôi đổ chúng vào bộ đệm với cái này.

1

Rails 5

Nếu có ai đến đây tìm kiếm này trong Rails 5, bạn chỉ có thể thêm @warn chỉ thị để stylesheets của bạn và đầu ra sẽ được in vào giao diện điều khiển của bạn (bạn phải chạy rails s).

Ví dụ:

$main-color: #327B31; 
@warn "Main color is:" $main-color; 

sẽ in ra này để giao diện điều khiển của bạn:

WARNING: "Main color is:" #f5f5f5 
    on line 2 of /path/to/your/app/assets/stylesheets/application.scss 

PS: Theo như tôi có thể nói, này xuất hiện trong giao diện điều khiển của bạn chỉ - không có trong các bản ghi .

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