gulp.js实现less批量实时编译
问题描述:
在之前一直用Koala编译less文件,但本人感觉Koala用起来非常麻烦,好像不能做多个less文件的批量的编译;因为目前项目也没有用到webpack,我的less是通过vs code 里的easy less插件来编译的,然而今天在项目中发现了个比较尴尬的问题,比如我编写了一个公用的base.less文件,里面定义了一些公用的变量、样式,其他.less文件都使用@import引入了base.less文件;接下来问题来了,当我修改了base.less文件后,我其它引入了base.less的文件并不能根据base.less的变化而重新编译一次,导致我只能挨个去手动打开保存一次,它才能重新编译,假如我有100个.less文件引入了base.less,那么我得去打开100个less文件,这样不是我想看到的。那么遇见问题解决问题,网上也查找了很多方法,基本都不靠谱,最后锁定了gulp.js前端自动化构建工具,来实现对多个.less文件的批量实时编译。话不多少,现在开始:
gulp.js简介:
gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学习起来很容易,而且gulp.js使用的是nodejs中stream来读取和操作数据,其速度更快。如果你还没有使用过前端构建工具,或者觉得grunt.js太难用的话,那就尝试一下gulp吧。
具体实现:
1、全局安装gulp.js (首先确保你已经正确安装了node.js环境)
npm install -g gulp
2、在项目目录下执行以下命令,创建package.json文件:
npm init
3、依次执行下面的命令下载gulp依赖包和gulp-less以及gulp-autoprefixer工具:
npm install gulp -D npm install gulp-less gulp-autoprefixer -D
4、在项目目录中创建一个gulpfile的js文件,js代码如下

var gulp =require("gulp");
var less =require("gulp-less");
var auto =require("gulp-autoprefixer");//css浏览器兼容前缀 gulp.task('compileLess', done => {
//找到项目中less文件夹中所有文件夹下的所有less文件
gulp.src("../less/**/*.less")
//进行预编译处理,保持与引入的模块一致
.pipe(less())
.pipe(auto({
grid:true,
browsers:['last 2 version']
}))
//编译后将less编译成的css文件保存到项目目录下的css文件夹中
.pipe(gulp.dest('../css'))
done();
}); // 通过watch方法实时监测所有less文件,如果发生更改,执行compileLess方法
gulp.task('watch',function(){
gulp.watch('../less/**/*.less',gulp.series('compileLess'));
})

控制台输入 gulp watch 命令实现监听
gulp.js实现less批量实时编译的更多相关文章
- gulp实时编译less,压缩合并requirejs模块文件
gulp的使用命令简单,就几个,gulp的简单使用教材可以参考一点的gulp使用教材(http://www.ydcss.com/archives/18). 下面就简单的介绍这些命令如何互相配合的完成前 ...
- 使用gulp和bable实现实时编译ES6代码
这篇文章最初发表在我自己折腾的博客站点上:使用gulp和bable实现实时编译ES6代码,该博客用了一位前辈开源的源码,基于thinkjs和vuejs开发,欢迎大家来逛逛. 问题描述> 项目开发 ...
- 通过Gulp使用Browsersync实现浏览器实时响应文件更改
Gulp是什么鬼 Browsersync又是什么鬼 如何安装使用Browsersync 安装 使用 效果图 参考 Gulp是什么鬼 Gulp是一种基于node.js的构建工具,有关构建工具的概念请移步 ...
- 前端自动化之sass实时编译及自动刷新浏览器
gulp livereload实现sass实时编译及浏览器自动刷新 首先gulp是基于Node的,所以确保你已经安装 node.js,在Nodejs官方网站下载跟自己操作系统相对应的安装包. 先说一下 ...
- gulp.js基础入门
安装 Node 去 nodejs.org 根据系统选择性按照教程安装Node. 创建项目 创建项目文件夹 进入项目文件夹 初始化项目 使用npm命令:npm init,根据提示完成. 安装 Gulp ...
- Grunt完成对LESS实时编译
安装 安装grunt需要先安装node.js. 之后需要借助npm来安装grunt-cli,在cmd中npm install -g grunt-cli.(测试grunt --version看是否正确显 ...
- Gulp.js - 简单、直观的自动化项目构建工具
Gulp.js 是一个简单.直观的构建系统.崇尚代码优于配置,使复杂的任务更好管理.通过结合 NodeJS 的数据流的能力,你能够快速构建.通过简单的 API 接口,只需几步就能搭建起自己的自动化项目 ...
- gulp.js 的安装以及使用
首先:电脑需要安装 Node.js 一个大绿色的安装按钮,点击就可以. 但还是推荐,点击download选中一款适合电脑配置的版本. Node安装过程,就是下一步 and 下一步~~ 测试手否安装成功 ...
- Idea 实时编译 和 热部署
实时编译 idea自动保存编写好的文件,但是不会编译,想要编译需要按ctrl+F9(编译整个项目)ctrl+shift+f9(单个文件),不仅麻烦而且和平常习惯也不相复合.怎么令idea的ctrl+s ...
随机推荐
- LeetCode 198. 打家劫舍(House Robber)LeetCode 213. 打家劫舍 II(House Robber II)
打家劫舍 题目描述 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报 ...
- 了解一下urlencode()函数
urlencode()函数 在PHP官方网站中的解释如下: 编码 URL 字符串——就是对特殊字符进行编码转移(. _ - 除外): string urlencode ( string $str ...
- VC中MessageBox与AfxMessageBox用法与区别
一.MessageBox()用法 1.函数原型 Messagebox函数在Win32 API和MFC里的定义有区别. Win32 API的定义如下: int WINAPI MessageBox( ...
- 算法 - DNA搜索 - Ako Corasick
场景:从很长的字符串(输入字符串.DNA)中搜索大量固定字符串(字典.基因) 题目:Determining DNA Health | HackerRank 算法:Aho–Corasick algori ...
- navivate 下载
https://www.jianshu.com/p/5f693b4c9468?mType=Group
- java里poi操作excel的工具类(兼容各版本)
转: java里poi操作excel的工具类(兼容各版本) 下面是文件内具体内容,文件下载: import java.io.FileNotFoundException; import java.io. ...
- New Date API介绍
一.新的Date API介绍 LocalDateLocalTimeInstantDurationPeriod formatterparsejdk以前的java.util.Date存在的问题 1)比如n ...
- 简单的servlet上传文件
boolean multipartContent = ServletFileUpload.isMultipartContent(request);if (multipartContent==true) ...
- Salesforce学习之路-developer篇(五)一文读懂Aura原理及实战案例分析
1. 什么是Lightning Component框架? Lightning Component框架是一个UI框架,用于为移动和台式设备开发Web应用程序.这是一个单页面Web应用框架,用于为Ligh ...
- 【PI系列】SAP IDOC发送状态03,PI没有收到消息的解决办法
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[PI系列]SAP IDOC发送状态03,PI没 ...