• 主页
  • 归档
  • 分类
  • 照片墙
所有文章 友情链接 关于我

  • 主页
  • 归档
  • 分类
  • 照片墙
  1. 1. SASS与SCSS
  2. 2. sass编译工具
  3. 3. node-sass

SASS-初见

2017-11-11 19:49:27
总字数 755
预计阅读时间 3 分钟

CSS本身并不算是一种编程语言 , 它没有变量 , 也没有条件语句
只是作为单纯的描述 , 写起来比较费事 , 同时也需要考虑很多的兼容性问题
很自然地 , 有人开始为CSS加入编程元素 , 这类工具就叫做CSS预处理器
这类工具使用编程的风格去编写类似CSS的代码 , 然后通过工具的处理生成浏览器可以识别的CSS文件

SASS与SCSS

这两者其实是同一种东西 , 都可以称之为SASS

  • 文件的扩展名不同 , 分别是sass和scss
  • sass以严格的缩进式语法规则来编写 , 不带大括号和分号 , 而scss的语法与css的语法非常类似

下面是最简单的例子 , 运用了变量的定义和调用
sass语法

1
2
3
4
5
6
$font-stack: Helvetica, sans-serif  //定义变量
$primary-color: #333 //定义变量

body
font: 100% $font-stack
color: $primary-color

scss语法

1
2
3
4
5
6
7
$font-stack: Helvetica, sans-serif;
$primary-color: #333;

body {
font: 100% $font-stack;
color: $primary-color;
}

最终编译出来的css都是

1
2
3
4
body {
font: 100% Helvetica, sans-serif;
color: #333;
}

sass编译工具

sass本身是类似ruby的语法的 , 使用ruby去编译sass是最直接的
可以使用ruby -v 查看是否安装ruby ( Mac系统自带 )
使用ruby的包管理工具gem安装sass模块

1
$ gem install sass

如果需要进行卸载 , 执行 gem uninstall sass 即可

执行sass -v 正常显示版本号代表安装成功
执行编译的操作非常简单

1
2
#sass 源文件名:目标文件名
$ sass test.scss:test.css
  • 添加--watch参数可以启动一个程序监控该scss文件的变化 , 一旦发生变化则重新执行编译
  • 添加--style参数可以使用不同风格的输出方式 ( 通常可以用于压缩css代码 )
    例如sass test.scss:test.css --style compressed
    nested - 嵌套输出
    expanded - 展开输出
    compact - 紧凑输出
    compressed - 压缩输出

node-sass

这个模块是nodejs的一个第三方模块 , 用于编译sass代码 , 为了方便 , 我们配合webpack来进行使用

1
$ npm install node-sass sass-loader --save-dev

为了查看编译过后的文件 , 我们需要把编译过后的css代码放入一个独立的文件当中
需要使用extract-text-webpack-plugin模块
这是一个webpack的插件
安装之后
在webpack.config.js当中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
var webpack = require("webpack");
var ExtractTextPlugin = require('extract-text-webpack-plugin');
module.exports = {
entry: {
entry : './src/entry.js'
},
output: {
path: __dirname+"/dist",
filename: 'js/[name].bundle.js'
},
module: {
loaders: [
{ test: /\.css$/, loaders: ["style-loader","css-loader"]},
{ test: /\.scss$/, loaders : ExtractTextPlugin.extract({fallback:"style-loader",use:["css-loader","postcss-loader","sass-loader?outputStyle=compact"]})}
]
},
plugins : [
//压缩打包之后的js
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
}
}),
//写入的文件
new ExtractTextPlugin("css/[name][contenthash].css")
]
};

上面为sass-loader加的参数outputStyle作用与ruby当中的–style相同

在src/entry.js当中引入scss文件

1
require("./style/test.scss");
  • 前端
  • sass
  • 前端杂烩

扫一扫,分享到微信

SASS-语法(1)
HTML5的缓存策略 
© 2024 夏夜梦星辰
鲁ICP备19028444号
Power By Hexo
  • 所有文章
  • 友情链接
  • 关于我
{{searchItem.query}}
标签: 分类:
  • maven
  • 持续集成
  • JMS
  • 线程
  • JavaScript
  • ECMAScript6
  • 单元测试
  • Promise
  • Web Worker
  • 函数
  • prototype
  • 模块化
  • 正则表达式
  • 数据库
  • MongoDB
  • 索引
  • 集群
  • 全文检索
  • flutter
  • dart
  • git
  • 版本控制
  • linux
  • shell
  • docker
  • nginx
  • jenkins
  • opencv
  • vim
  • react
  • react native
  • 前端
  • css
  • HTML5
  • Hexo
  • sass
  • Three.js
  • TypeScript
  • Vue
  • 组件化
  • base64
  • webpack
  • nodejs
  • gulp
  • TensorFlow
  • 机器学习
  • 算法
  • 动态规划
  • 数据结构
  • Java
  • JavaScript
  • MongoDB
  • flutter
  • Git
  • linux
  • react
  • 前端杂烩
  • 男生女生
  • 算法
  • 十年饮冰,难凉热血
  • †少女癌†
  • 猫与向日葵
  • coderfun
  • JENKINS
  • API管理后台
愿你最终能接纳每一面每一种的自己
独自活着便是团圆