gulp教程之gulp-less
来源:互联网 发布:淘宝女装店铺策划书 编辑:程序博客网 时间:2024/04/29 21:50
原文链接:http://www.ydcss.com/archives/34
简介:
使用gulp-less插件将less文件编译成css,当有less文件发生改变自动编译less,并保证less语法错误或出现异常时能正常工作并提示错误信息。
1、安装nodejs/全局安装gulp/项目安装gulp/创建package.json和gulpfile.js文件
1.1、gulp基本使用还未掌握?请参看: gulp详细入门教程
1.2、本示例目录结构如下:
2、本地安装gulp-less
2.1、github:https://github.com/plus3network/gulp-less
2.3、安装:命令提示符执行 cnpm install gulp-less --save-dev
2.4、注意:没有安装cnpm请使用 npm install gulp-less --save-dev
什么是cnpm,如何安装?
2.5、说明:--save-dev
保存配置信息至 package.json 的 devDependencies 节点。为什么要保存至package.json?
3、配置gulpfile.js
3.1、基本使用
var gulp = require('gulp'), less = require('gulp-less');gulp.task('testLess', function () { gulp.src('src/less/index.less') .pipe(less()) .pipe(gulp.dest('src/css'));});
3.2、编译多个less文件var gulp = require('gulp'), less = require('gulp-less');gulp.task('testLess', function () { gulp.src(['src/less/index.less','src/less/detail.less']) //多个文件以数组形式传入 .pipe(less()) .pipe(gulp.dest('src/css')); //将会在src/css下生成index.css以及detail.css });
3.3、匹配符“!”,“*”,“**”,“{}”var gulp = require('gulp'), less = require('gulp-less');gulp.task('testLess', function () { //编译src目录下的所有less文件 //除了reset.less和test.less(**匹配src/less的0个或多个子文件夹) gulp.src(['src/less/*.less', '!src/less/**/{reset,test}.less']) .pipe(less()) .pipe(gulp.dest('src/css'));});
3.4、调用多模块(编译less后压缩css)var gulp = require('gulp'), less = require('gulp-less'), //确保本地已安装gulp-minify-css [cnpm install gulp-minify-css --save-dev] cssmin = require('gulp-minify-css');gulp.task('testLess', function () { gulp.src('src/less/index.less') .pipe(less()) .pipe(cssmin()) //兼容IE7及以下需设置compatibility属性 .pipe(cssmin({compatibility: 'ie7'})) .pipe(gulp.dest('src/css'));});
3.5、当less有各种引入关系时,编译后不容易找到对应less文件,所以需要生成sourcemap文件,方便修改var gulp = require('gulp'), less = require('gulp-less'), //确保本地已安装gulp-sourcemaps [cnpm install gulp-sourcemaps --save-dev] sourcemaps = require('gulp-sourcemaps');gulp.task('testLess', function () { gulp.src('src/less/**/*.less') .pipe(sourcemaps.init()) .pipe(less()) .pipe(sourcemaps.write()) .pipe(gulp.dest('src/css'));});
4、执行任务
4.1、命令提示符执行:gulp testLess
5、监听事件(自动编译less)
5.1、若每修改一次less,就要手动执行任务,显然是不合理的,所以当有less文件发生改变时使其自动编译
var gulp = require('gulp'), less = require('gulp-less');gulp.task('testLess', function () { gulp.src(['src/less/*.less','!src/less/extend/{reset,test}.less']) .pipe(less()) .pipe(gulp.dest('src/css'));});gulp.task('testWatch', function () { gulp.watch('src/**/*.less', ['testLess']); //当所有less文件发生改变时,调用testLess任务});
5.2、启动监听事件:命令提示符执行 gulp testWatch
5.3、注意:该命令提示符执行需处于打开状态,关闭后监听事件结束(Ctrl + C 或右上)
6、异常处理
6.1、当编译less时出现语法错误或者其他异常,会终止watch事件,通常需要查看命令提示符窗口才能知道,这并不是我们所希望的,所以我们需要处理出现异常并不终止watch事件(gulp-plumber),并提示我们出现了错误(gulp-notify)。
var gulp = require('gulp'), less = require('gulp-less');//当发生异常时提示错误 确保本地安装gulp-notify和gulp-plumbernotify = require('gulp-notify'), plumber = require('gulp-plumber');gulp.task('testLess', function () { gulp.src('src/less/*.less') .pipe(plumber({errorHandler: notify.onError('Error: <%= error.message %>')})) .pipe(less()) .pipe(gulp.dest('src/css'));});gulp.task('testWatch', function () { gulp.watch('src/**/*.less', ['testLess']);});
7、结束语
7.1、本文有任何错误,或有任何疑问,欢迎留言说明
- gulp教程之gulp-less
- gulp教程之gulp-less
- gulp教程之gulp-less
- gulp教程之gulp-imagemin
- gulp教程之gulp-autoprefixer
- gulp教程之gulp-imagemin
- gulp教程之gulp-htmlmin
- gulp教程之gulp-uglify
- gulp教程之gulp-concat
- gulp教程之gulp-autoprefixer
- gulp教程之gulp-autoprefixer
- gulp教程之gulp-autoprefixer
- gulp教程之gulp-imagemin
- gulp教程之gulp-uglify
- gulp教程之gulp-htmlmin
- gulp安装&less插件教程
- Gulp--Less
- gulp教程之 jshint
- Codeforces Round #375 (Div. 2)
- 华为MA5600断开终端用户的连接方法
- 在C#中相对路径
- Rocket.Chat - REST API
- 使用变量全局替换字符串,替换字符串中出现的文字
- gulp教程之gulp-less
- 动态规划-最长递增子序列
- java 四舍五入取整
- Android源码解析——AsyncTask
- C#四路继电器usb转com口编程
- wap页活动倒计时
- $.each的用法
- 怎样创建任务计划程序
- 【面向代码】学习 Deep Learning(一)Neural Network