前端基础工作流:sass自动化编辑成css

目前sass提供了观察文件变化,自动将sass文件编译成css的功能。
但在有些机子上跟踪编译非常慢。使用不便。
如果想更顺手的完成更复杂的编译,就需要使用nodejs,gulp 工具进行处理。

Sass安装

环境ubuntu 16.04

  1. sudo apt-get install ruby

  2. sudo gem install sass

国内会报错,如下

sudo gem install sass
ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
Errno::ECONNRESET: Connection reset by peer - SSL_connect (https://api.rubygems.org/quick/Marshal.4.8/sass-3.4.22.gemspec.rz)

原因是国内和谐gem,解决方法是使用淘宝镜像如下

$ gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/
$ gem sources -l
*** CURRENT SOURCES ***
https://ruby.taobao.org
# 请确保只有 ruby.taobao.org

重新执行sudo gem install sass

nodejs安装

安装参考nodejs.org
npm访问慢的问题参考npm.taobao.org淘宝镜像

gulp安装

gulp 介绍

gulpjs.com
gulp中文网

gulp 安装参考gulp入门指南
简易步骤:
在项目更目录执行
npm install --save-dev gulp
*安装gulp-sass插件,详细说明gulp-sass
npm install gulp-sass

sass 转 css 操作流

示例项目目录结构

-node_modules   //node 模块
-scss           //编译前的scss文件
 --test.scss
-css            //编译后的css文件
 --test.css
--gulpfile.js   //gulp任务执行工具配置文件
--index.html

gulpfile.js文件内容

var gulp = require('gulp');
var sass = require('gulp-sass');

gulp.task('scss',function(){
    gulp.src('./scss/*.scss')  //这里是scss文件的目录
        .pipe(sass().on('error',sass.logError))
        .pipe(gulp.dest('./css'));  //这里是编译后css存放的目录
})

gulp.task('default',function(){
    gulp.watch('./scss/*.scss',['scss']);  //在这里执行文件观察任务,发现变化执行上面定义好的 `scss`编译任务。
})

启动:
node_modules/.bin/gulp gulpfile.js
提示

[19:05:18] Using gulpfile ~/test/gulpfile.js
[19:05:18] Starting 'default'...
[19:05:18] Finished 'default' after 20 ms

打开编辑器编辑scss下test.scss文件,保存,查看css下test.css文件,已经编译好了。


Vestin
Great!

For Freedom.

132 声望
15 粉丝
0 条评论
推荐阅读
CSS 绘制一只思否猫
欢迎关注我的公众号:前端侦探练习 CSS 有一个比较有趣的方式,就是发挥想象,绘制各式各样的图案,比如来绘制一只思否猫?思否猫,SegmentFault 思否的吉祥物,是一只独一无二、特立独行、热爱自由的(>^ω^&lt...

XboxYan48阅读 3.4k评论 14

封面图
还在用 JS 做节流吗?CSS 也可以防止按钮重复点击
举个例子:一个保存按钮,为了避免重复提交或者服务器考虑,往往需要对点击行为做一定的限制,比如只允许每300ms提交一次,这时候我想大部分同学都会到网上直接拷贝一段throttle函数,或者直接引用lodash工具库

XboxYan35阅读 2.8k评论 2

封面图
CSS transition 小技巧!如何保留 hover 的状态?
欢迎关注我的公众号:前端侦探通常情况下,hover 是无法保存状态的。鼠标移入触发额外样式,一旦移出就还原了 {代码...} 这就意味着,如果需要保留hover的状态,可能就不得不借助JS了,比如下面是某某书院的首页...

XboxYan30阅读 4k评论 2

封面图
CSS 如何设置自动滚动定位的“安全”间距?
欢迎关注我的公众号:前端侦探介绍两个和滚动定位相关的 CSS 属性:scroll-padding和 scroll-margin在平时开发中,经常会碰到需要快速定位的问题,比如常见的锚点定位 {代码...} 这样,在点击a标签时会自动定位到...

XboxYan31阅读 2.6k评论 2

封面图
2022大前端总结和2023就业分析
我在年前给掘金平台分享了《2022年热点技术盘点》的前端热点,算是系统性的梳理了一下我自己对前端一整年的总结。年后,在知乎上看到《前端的就业行情怎么样?》,下面都是各种唱衰前端的论调,什么裁员,外包化...

i5ting27阅读 2.4k评论 4

封面图
【已结束】SegmentFault 思否写作挑战赛!
SegmentFault 思否写作挑战赛 是思否社区新上线的系列社区活动在 2 月 8 日 正式面向社区所有用户开启;挑战赛中包含多个可供作者选择的热门技术方向,根据挑战难度分为多个等级,快来参与挑战,向更好的自己前进!

SegmentFault思否20阅读 5.1k评论 10

封面图
由小见大!不规则造型按钮解决方案
今天,有个群友在群里提问,使用 CSS 能否实现下述这个图形:emmm,中间这个酷似三次贝塞尔曲线的造型,使用 CSS 不太好实现。我的建议是切图实现,然而群友要求一定要用 CSS 实现。虽然麻烦,但是这个图形勉强也...

chokcoco17阅读 1.3k

封面图

For Freedom.

132 声望
15 粉丝
宣传栏