cssstylesass-loader区别

html-css015

cssstylesass-loader区别,第1张

The css-loader interprets @import and url() like import/require() and will resolve them.

Adds CSS to the DOM by injecting a <style>tag

Loads a Sass/SCSS file and compiles it to CSS.

Use the css-loader or the raw-loader to turn it into a JS module and the MiniCssExtractPlugin to extract it into a separate file.

SCSS 之类的预处理器本身就是为了生成 CSS 而设计的。它的优势在于开发效率高。对于一些样式复杂的站点,用 SASS 之类的工具生成代码比手写 CSS 快得多。但是 SASS 不是为了取代 CSS 而生的,它是为了服务 CSS 而生。或者类比一下,机器不能直接执行 C,它执行的是编译后的机器码。浏览器也不能直接渲染 SCSS,它渲染的是编译出来的 CSS。不过 SCSS 与 CSS 的关系和@郑诚所说的「jquery永远不可能取代javascript」有一点区别。 jQuery 是一个 JavaScript 的库而非生成 JavaScript 的工具,它是用 JavaScript 开发出来的;而 CSS 是标记语言。CSS 的一些框架如 lessframework 或者 normalize,它们之于 CSS 的关系更像 jQuery 之于 JavaScript。

本文前提 是电脑里已经顺利安装了ruby,sass等之后,再进行webstorm中配置sass的watcher,以及改变watcher中的默认选项;如果以上都还没有做,可以自行百度解决,很容易找到的;

本文使用的webstorm为11.0版本

点击左上角的 *File→Settings→File Watchers ***

在弹窗的窗口的右上角点击绿色的 ‘+’ 号,然后选择scss

然后按照下图进行操作:

其中黄色的地方都要填好,program那里是你安装ruby中响应的scss.bat的路径,如果安装ruby时,你不是按照默认c盘路径按装的话,那么那里是需要需改的;

按道理其中只有两个地方是需要修改的,其他我没有改过,都是默认就是那样的

1、Arguments:

可以配置编译后的文件的输出路径,我这里写的是:

--no-cache --update --sourcemap --watch : \css$FileNameWithoutExtension$.css

注意, 后面有个冒号,然后 表示的是 scss文件所在的文件夹的父级文件夹 ,而不是scss文件的父文件夹.

举个例子,我的项目叫lianxi,里面有个sass文件夹,里面存放scss文件,那么按照这样配置的结果, www.scss 所在的文件夹就是sass,sass的父文件夹就是lianxi,然后找到lianxi下的css文件夹,编译后的 www.css 文件就会在这里.

如图所示:

2、 Output paths to refresh:

改成这样: .css: .css.map

经过以上配置就实现了, webstorm支持sass的同步编译,也就是即写即编译,并且可以指定编译后的css的目录.

这里需要注意两点:

1》同步编译只能在项目文件夹下,也就是webstorm左侧打开的项目.随便打开一个项目外的文件是不行的.

2》这个和webstorm没有什么关系,就是sass编译不能带有中文,无论是路径名,文件名,文件里的内容,都不能识别中文,如果要修改它也不是不可以,但我觉得不用中文也挺好的,养成好习惯嘛.

原文网址摘自于 http://www.jianshu.com/writer#/notebooks/8901255/notes/8479561