一个完整的gulp例子(含注释)亲测可用

// 1.引入gulp 获取 gulp
const gulp = require(‘gulp‘)

// 2.引入gulp需要用的各个类型插件
const less = require(‘gulp-less‘)
const csso = require(‘gulp-csso‘) //这个插件作用是压缩css的
const uglify = require(‘gulp-uglify‘)
const htmlmin = require(‘gulp-htmlmin‘)
const imagemin = require(‘gulp-imagemin‘)
const sass =require(‘gulp-sass‘)

// 3.定义任务

//3.0 没有less sass 处理css
gulp.task(‘style‘, function(){
gulp.src([‘./css/*.*‘]) // 匹配到指定的css文件*代表所有
.pipe(csso()) //把转化的css压缩 不写不压缩
.pipe(gulp.dest(‘./dist/css‘)) //把这些操作过的文件放到哪个文件夹

})

// 3.1 处理less
//gulp.task(‘style‘, function(){
//gulp.src([‘./less/*.*‘]) // 匹配到指定的less文件*代表所有
// .pipe(less()) // 将less转换为css
// .pipe(csso()) //把转化的css压缩 不写不压缩
//.pipe(gulp.dest(‘./dist/css‘)) //把这些操作过的文件放到哪个文件夹

// })

// 3.1处理sass
//gulp.task(‘sass‘, function(){
// gulp.src([‘./sass/*.*‘]) // 匹配到指定的less文件*代表所有
// .pipe(sass()) // 将sasss转换为css
// .pipe(csso()) //把转化的css压缩 不写不压缩
// .pipe(gulp.dest(‘./dist/css‘)) //把这些操作过的文件放到哪个文件夹

// })

// 3.2 处理js
gulp.task(‘script‘, function(){
gulp.src([‘./js/*.js‘]) // 匹配到指定的less文件 *代表所有
.pipe(uglify()) //压缩 获取到的js 不写不压缩
.pipe(gulp.dest(‘./dist/js‘)) //把这些操作过的文件放到哪个文件夹
})

// 3.3 处理html 因为html文件内可能有js可能有css所以需要条件
gulp.task(‘html‘, function(){
//html可能不都是在一个目录用数组就可以写多个路径
gulp.src([‘./*.html‘])
.pipe(htmlmin({ //压缩 获取到的html
collapseWhitespace:true, // 如下
minifyCSS: true, // 如下
minifyJS: true // 如下
}))
.pipe(gulp.dest(‘./dist‘)) //输出到哪个文件夹
})

//3.4 处理图片
gulp.task(‘images‘, function () {
// 1. 找到图片
gulp.src([‘./images/*.*‘])
// 2. 压缩图片
.pipe(imagemin({
progressive: true
}))
.pipe(gulp.dest(‘./dist/images‘))
});

// 如果这个任务名不是`default`,则执行该任务时,需要在cmd中输入:
//`gulp +你定义的名字` 或者你要是嫌麻烦干脆把名字像下边是的就写default

gulp.task(‘default‘, function(){
// watch是用来监视文件的变化,然后当文件变化时,执行指定的任务
// 第一个参数是要监视的文件
// **/*.* 表示 任意目录下的任意文件 **表示任意文件夹
// 第二个参数是要执行的任务
gulp.watch(‘./**/*.*‘,[‘html‘,‘script‘,‘style‘,‘images‘])
})

// html压缩常用方法:

//collapseWhitespace: true, //压缩html
// collapseBooleanAttributes: true, //省略布尔属性的值
// removeComments: true, //清除html注释
// removeEmptyAttributes: true, //删除所有空格作为属性值
// removeScriptTypeAttributes: true, //删除type=text/javascript
// removeStyleLinkTypeAttributes: true, //删除type=text/css
// minifyJS:true, //压缩页面js
// minifyCSS:true //压缩页面css

时间: 2024-11-05 04:49:26

一个完整的gulp例子(含注释)亲测可用的相关文章

Nginx+Tomcat+Memcached负载均衡配置完整流程(多方总结,亲测可用)

Nginx+Tomcat+Memcached负载均衡配置完整流程: 前言: Nginx实现Tomcat的负载均衡和利用memcached实现session共享. 首先配置tomcat,JDK 将jdk,tomcat 放入站点/opt目录中 安装JDK cd /opt chmod 755 jdk-6u45-linux-x64-rpm.bin ./jdk-6u45-linux-x64-rpm.bin java -version      //检验版本 安装Tomcat tar -zxf apache

[转]QT子线程与主线程的信号槽通信-亲测可用!

近用QT做一个服务器,众所周知,QT的主线程必须保持畅通,才能刷新UI.所以,网络通信端采用新开线程的方式.在涉及到使用子线程更新Ui上的控件时遇到了点儿麻烦.网上提供了很多同一线程不同类间采用信号槽通信的方式,但是并不完全适合线程间的信号槽通信,这主要体现在自定义消息的传递上. 首先我们看看一般的方式:利用信号-槽发送Qt内置的元数据类型testthread.h 文件 #ifndef TESTTHREAD_H #define TESTTHREAD_H #include <QThread> #

Apache+Php配置(亲测可用)

引言: 在软件项目中,Maven提供了一体化的类库管理系统,非常实用.但是,如果新增的类库jar在网络上无法获取到,如何在本地按照Maven的规则添加进来呢?本文将通过一个小例子展示新增过程. 背景介绍: 一个Maven管理的Java项目,提供一个系统级别的POM.xml,其中定义了整个项目使用的类库. 需求: 需要添加一个自定义的类库到当前项目中.假定当前的类库文件名为:abc.jar.. 如何将类库添加进来? 1.  找到当前Maven的Repository类库位置 一般默认情况下,在win

sqlite 删除表中重复数据(亲测可用)

例子:表名  Paper .通过字段PaperID查找重复数据. 1 --查询某表中重复的数据       select * from Paper group by PaperID having count(*)>1; 2--删除重复行数,只剩不重复的记录(rowid为sqlite自带字段)      delete from Paper where Paper.rowid not in (select MAX(Paper.rowid) from Paper group by PaperID);

VCL下最好的皮肤控件AlphaControls 9.05 完美支持XE6 亲测可用

在传统的vcl编程中,因自带的控件效果太过普通,为了更好的用户体验和视觉效果往往会使用第三方的一些皮肤控件,这样的皮肤控件百度上一搜一大把,但往往不了解自己不使用过直接下载下来也是没有用的,因为这要涉及到控件版本 ID工具版本 操作系统 等多方因素配合使用,只有实际测试使用过才可定性. 本文提供的一款控件是经过实际测试过的 测试环境:Windows7 32位 ,Delphi xe6, AlphaControls 9.05 下载链接:http://binstyle.7958.com/down_18

CSS响应式:根据分辨路加载不同CSS的几个方法,亲测可用

有时候你需要把同一个页面在手机和pc同时打开,其中有一个办法就是判断不同分辨路加载不同的css 小编总结了几种分别加载css的方法: 1.比较复杂的使用js判断加载不同css (亲测可用) 但是这种方法只有最开始的时候会判断,如果你拖动浏览器大小是不会发生改变的(当然如果喜欢拖着玩的话) 1 <link rel="stylesheet" type="text/css" id="links" href="../css/m_wuqin

is 32-bit instead of 64-bit 亲测可用

亲测可用 来源:https://stackoverflow.com/questions/27186243/use-32-bit-jni-libraries-on-64-bit-android 解决方法: 1.将以下内容添加到"build.gradle"defaultConfig中:添加 ndk {abiFilters"armeabi","armeabi-v7a","x86","mips"} 2.将andro

AD10 Altium Designer 10 破解文件-亲测可用

做了9年多的软件,从BSP,嵌入式软件到系统软件,从vxwork到QNX到linux..从通信行业做到机器人行业...从基层开发工程师到软件经理,系统架构师... 35岁了,有娃有家了,开始兼管硬件部门了,心理感慨万千... 如今以一个新兵的心态去开始迎接底层最基础的硬件,从装Altium Designer.开始吧.. 装了AD10,在网上找了很多破解方案,都不行,,最后找到一个亲测可用的,连接如下: https://files.cnblogs.com/files/stay-foolish198

rtsp流 测试地址(亲测可用)

开发一款视频监控实时视频播放器,用到的协议是RTSP,由于在开发测试阶段所以没有用服务器的链接, 最后找到一个亲测可用: rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov (转) 作者:hou_tong 来源:CSDN 原文:https://blog.csdn.net/tong_hou/article/details/77532245?utm_source=copy 原文地址:https://www.cnblogs.com/yizhizhan