pur*_*nic 9 sass ruby-on-rails-3.1
我最喜欢的SCSS调试功能之一是@warn和@debug指令,它们都有助于调试.但是,当我将其中任何一个放在我的scss文件中的Rails 3.1项目中时,它们不会出现在stdout中(来自运行tail -f log/development.log)
有谁知道是否可以启用这些,以便Sprockets/Rails不会禁用它们,我可以在输出流中查看输出.
我还没有找到如何在开发日志中启用它们,但可以使用sass --watch实现相同的功能.
这是我的application.css.scss,它主要使用sass @import(不是sprockets*= require.请参阅此处了解原因.)来获取共享变量/ mixins/functions用法的其他sass文件:
/*
*= require_self
*= depend_on projects
*/
@import "layout.css.scss";
@import "projects.css.scss";
Run Code Online (Sandbox Code Playgroud)
现在假设layout.css.scss有这个变量:
$main-color: #327B31;
Run Code Online (Sandbox Code Playgroud)
我可以在文件project.css.scss中获取它的值
@debug "Main color is:" $main-color;
@warn "Darker: " darken($main-color, 20%);
Run Code Online (Sandbox Code Playgroud)
我打开一个终端窗口,并在主.scss文件中指向sass --watch,该文件会引入其他文件
$ 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
Run Code Online (Sandbox Code Playgroud)
--stop-on-error 是因为错误倾向于使sass - watch重复重复,这是我不想要的.--trace如果发生错误,会给你一个回溯.
只要不发生错误,此日志将在每次保存时继续刷新.
我也喜欢这种方法,因为它的ruby/rails是中性的(它应该是,它似乎),所以适用于任何运行sass的东西.
此外,如果您在Sass上使用Compass,这也适用.
只需在application.css.scss文件(或任何.scss文件)中激活指南针:
@import "compass";
Run Code Online (Sandbox Code Playgroud)
然后使用``compass watch```:
$ compass watch app/assets/stylesheets/application.css.scss --css-dir tmp/cache/
Run Code Online (Sandbox Code Playgroud)
--css-dir tmp/cache/是为了避免罗盘手表创建覆盖.scss文件的.css文件.我用它将它们转储到缓存中.
| 归档时间: |
|
| 查看次数: |
9009 次 |
| 最近记录: |