最近项目用上了sass,作为css的预处理器,它可以让我们用程序化的思维书写样式,极大的简化了css的开发,实在是前端居家旅行必备的利器。

我们都知道,在项目中,样式的频繁调试是不可避免的,用上sass虽说coding代码量减少,但调试过程着实让人崩溃。

看一段sass代码:

嵌套书写的结构在sass中经常会被用到。

编译之后的样式是这样的:

在开发工具上我们看到的是编译后的文件,而非编译前的源文件。

这个时候就产生一个问题了。在生产环境中,我希望看到的未经编译文件的调试信息,而非编译后的,因为这样会极大的方便开发人员。就像上面的截图,你能在scss文件下,快速定位到这些代码的位置吗?

~~~~~~~~~~~~~~~~~~~~~~~~无力吐槽的分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

好在,sass在3.3.0之后版本提供了sourcemap功能。至于什么是sourcemap,这里有个链接大家可以参考下。

http://code.tutsplus.com/tutorials/source-maps-101--net-29173

本人本地依赖 Ruby来编译scss文件,如果你没安装Ruby,请自行安装,相关教程可以google......

如果你本地没有安装Ruby,只要装有node.js和Grunt,同样的,它们也可以用来编译scss文件.

本地装有Ruby的同学得首先确定sass(3.3.0+)和compass是否已经安装就绪。

命令行下运行:

gem list

如果没有安装这两个包的同学请执行:

gem install sass --pre
gem install compass --pre

如果是版本过于陈旧请执行:

gem update sass

~~~~~~~~~~~~~~~~~~~~我是傲娇的分割线~~~~~~~~~~~~~~~~~~~~~

安装好sass和compass后,我们本地建立一个测试用的项目。

目录结构如下:

sass目录下有一个li.scss文件,我们的任务就是把li.scss编译到css目录下,同时生成sourcemap文件。

获取sass的相关用法可以在命令行下输入:

sass --help

进入项目根目录,命令行下输入:

sass --sourcemap --style compact --watch sass:css

这时sass目录下的scss文件都处于被监听的状态,一旦文件被修改,便会及时编译到css目录下,同时生成相应的sourcemap文件。当然,编译的同时,命令行下的窗口会输出相应的信息,以便开发者调试。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~美丽不可方物的分割线~~~~~~~~~~~~~~~~~~~

到这一步,我们已经成功生成了sourcemap文件,可惜的是,在浏览器下查看,我们仍未看到相对应的scss文件。

这是为什么呢?我们拥有了souremap文件,却缺少了相应的解析工具。

Chrome是支持sourcemap的,但要使用该功能,我们得首先开启它。

开启的步骤很简单,我就不过多描述了,大家看下面的截图就好了。哦,还有,推荐大家把chrome的版本升到33+,因为我不确保较低版本的chrome能否支持sourcemap。

“F12”,调出开发者工具,点击如下图标:

在弹出的面板里,选择:

重启你的chrome。

回到页面下,这个时候你就可以看到sourcemap起作用了。

这个时候,若你想修改scss文件,根据行号便可以快速定位,非常方便。

~~~~~~~~~~~~~~~~~~我是寂寞的分割线~~~~~~~~~~~~~~~~~

这里延伸一下。

许多同学都喜欢用webstrome来编写代码,其实我们利用其的File Watchers功能很方便就能编译scss文件。

‘Ctrl+Alt+S’调出setting面板,搜索“file watchers”。

点击“添加”按钮

弹出如下面板:

这里我们重点填写下面两项:

Program:xxxxx     这里填入你ruby安装目录下的scss.bat文件(windows系统下)

Arguments:xxx     这里输入的是编译时的一些参数,我这里输入的是:

--no-cache --sourcemap --style compact $FileName$:$FileParentDir$\css\$FileNameWithoutExtension$.css

配置完这些选项,当我们修改*.scss文件,文件就会自动编译,特别方便。

~~~~~~~~~~~~~~~~~~~~~~~~~~~写在最后的分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~

最后,谢谢大家。

利用sourcemap来调试sass的更多相关文章

  1. 支持新版chrome,用webstorm编译形成css和sourcemap,调试sass和less源文件(转)

    旧版的chrome有个support for sass,但是新版chrome没有这个功能了.看到网上提供的方法比较多,也很乱,旧版新版的都有.而且不能指定自己所需要的路径. 所以就做了下改版. sas ...

  2. 利用Eclipse+openJTAG调试led.axf文件

    转自calvinlee1984 Subject:利用Eclipse+openJTAG调试led.axf文件 Date:     3-Mar-2011 By:         Calvinlee1984 ...

  3. 利用Pycharm断点调试Python程序

    利用Pycharm断点调试Python程序 1.代码 准备没有语法错误的Python程序: #!/usr/bin/pythonimport numpy as np class Network: def ...

  4. Chrome浏览器下调试SASS

    网上说的方案各有各的说法,尝试多个才找到有效方案,为避免后来者麻烦,现在讲讲如何调试 笔者ruby版本为3.4.19,因为sass文件的编译是需要ruby环境的,使用sass前需要先安装! 第一步(核 ...

  5. chrome 调试 SASS

    第一步: 执行sass预编译命令 先来我的项目文件夹结构: ->进入sass /css文件下->打开cmd命令 ->输入sass --watch --scss  test.scss: ...

  6. 利用Keil u4调试,精确实现软件延时

    用定时器延时,有时候显得有点麻烦,我们不如考虑软件精确延时,软件延时无非就是利用for或while多重循环.以前用到延时函数时,都是从网上下载别人写好的延时子程序.延时5ms,400ms,1s,……, ...

  7. 利用Pycharm本地调试spark-streaming(包含kafka和zookeeper等操作)

    环境准备就不说了! 第一步:打开Pycharm,在File->Setting->Project Structure中点击Add Content Root 添加本地python调用java和 ...

  8. 利用 WireShark 深入调试网络请求

    来源:伯乐在线 - bestswifter 如有好文章投稿,请点击 → 这里了解详情 背景 最近发现我们产品在打开广告链接(Webview)时有一定概率会非常慢,白屏时间超过 10s,追查广告的过程中 ...

  9. 利用pycharm远程调试openstack代码

    1.安装pycharm专业版 本文安装pycharm 2016.2.3专业版.网上教程较多,这里不做详细介绍,只要到pycharm官网上下载应用程序进行安装即可. 2.pycharm配置 (1)首先按 ...

随机推荐

  1. 5332盛照宗 如何获取新技能+c语言学习调查

    如何获取新技能+c语言学习调查 你有什么技能比大多人(超过90%以上)更好? 如果问我有没有什么技能比大多数人,并且是90%的人好,我还真不敢说有,因为世界上有70亿人,要比63亿人做的好才行啊.我也 ...

  2. 关于ARP攻击的原理以及在Kali Linux环境下的实现

    关于ARP攻击的原理以及在Kali Linux环境下的实现 全文摘要 本文讲述内容分为两部分,前半部分讲述ARP协议及ARP攻击原理,后半部分讲述在Kali Linux环境下如何实现ARP攻击以及AR ...

  3. RF源码阅读(碎片纪录)-Python积木之contextlib

    参考页面: http://docs.python.org/2/library/contextlib.html contextlib是为了配合with语句来使用的.使用起来更加简洁.本来想写一下,这位同 ...

  4. Node服务一键离线部署

    背景说明 项目测试通过,到了上线部署阶段.部署的机器安全限制比较严格,不允许访问外网.此外,没有对外网开放ssh服务,无法通过ssh远程操作. 针对上面提到的两条限制条件,通过下面方式解决: 无法访问 ...

  5. 7天学会spring cloud教程

    按照官方的话说:Spring Cloud 为开发者提供了在分布式系统(如配置管理.服务发现.断路器.智能路由.微代理.控制总线.一次性 Token.全局锁.决策竞选.分布式会话和集群状态)操作的开发工 ...

  6. [Json.net]Linq to Json

    引言 上篇学习了json.net的基本知识,这篇学习linq to json. 上篇文章:[Json.net]快速入门 Linq to Json Linq to Json是用来快速操作json对象的, ...

  7. Node on Mac 初步

    安装node之前 1.之前在windows平台上安装node,直接下载一个安装文件得了.但是mac osx是基于unix架构的嘛,跟linux很像啊. 在linux上安装我们多习惯用命令行工具安装啊, ...

  8. Oracle添加数据文件创建表空间,创建用户代码

    1,添加数据文件创建表空间 CREATE TABLESPACE "TEST1" DATAFILE 'D:\ORACLE\11G\ORADATA\ORCL\TEST1.DBF' SI ...

  9. bzoj 1493 暴力

    我们可以枚举每个点,然后求出这个点到其余点最小消耗的代价,求出比t小的且距离最大的更新答案. /**************************************************** ...

  10. spring获取ApplicationContext对象的方法——ApplicationContextAware

    一. 引言 工作之余,在看一下当年学的spring时,感觉我们以前都是通过get~ set~方法去取spring的Ioc取bean,今天就想能不能换种模型呢?因为我们在整合s2sh时,也许有那么一天就 ...