gulp教程之gulp-less

2024-08-27 13:08
文章标签 教程 gulp less

本文主要是介绍gulp教程之gulp-less,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文链接: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.lesstest.less**匹配src/less0个或多个子文件夹)
    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-notifygulp-plumber
notify = 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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1111756

相关文章

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

MySQL zip安装包配置教程

《MySQLzip安装包配置教程》这篇文章详细介绍了如何使用zip安装包在Windows11上安装MySQL8.0,包括下载、解压、配置环境变量、初始化数据库、安装服务以及更改密码等步骤,感兴趣的朋... 目录mysql zip安装包配置教程1、下载zip安装包:2、安装2.1 解压zip包到安装目录2.2

Java使用Tesseract-OCR实战教程

《Java使用Tesseract-OCR实战教程》本文介绍了如何在Java中使用Tesseract-OCR进行文本提取,包括Tesseract-OCR的安装、中文训练库的配置、依赖库的引入以及具体的代... 目录Java使用Tesseract-OCRTesseract-OCR安装配置中文训练库引入依赖代码实

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

PyCharm 接入 DeepSeek最新完整教程

《PyCharm接入DeepSeek最新完整教程》文章介绍了DeepSeek-V3模型的性能提升以及如何在PyCharm中接入和使用DeepSeek进行代码开发,本文通过图文并茂的形式给大家介绍的... 目录DeepSeek-V3效果演示创建API Key在PyCharm中下载Continue插件配置Con

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具