gulpfile.js:
var gulp = require("gulp");
var imagemin = require("gulp-imagemin");//压缩图片插件
var uglify = require("gulp-uglify"); //js压缩插件
var sass = require("gulp-sass"); //sass转换为css插件
var concat = require("gulp-concat"); //代码合并插件
-----------------------------------------------------------------------
gulp能做什么:(下面是罗列最基本的)
-----------------------------------------------------------------------
1...压缩代码
2...合并代码
3...压缩图片
4...sass转换
-----------------------------------------------------------------------
原理:
1...gulp是基于nodejs的数据流
2...gulp主要使用pipe事件输入输出
3...插件独立使用
-----------------------------------------------------------------------
优势:
1...gulp是基于代码进行配置
2...gulp的可读性更高
3...gulp基于数据流,所以可以操作pipe()事件
-----------------------------------------------------------------------
安装

cnpm install gulp -g
-----------------------------------------------------------------------
npm init
一直回车;
gulpfile.js 和packjson.js同级
-----------------------------------------------------------------------
常用的方法:

gulp.task //定义任务
gulp.src //找到需要执行任务的文件
gulp.dest //执行任务的文件的去处
gulp.watch //观察问是否发生变化 //定义默认任务
gulp.task("default",function(){
return console.log("这是默认任务,只需要执行gulp")
})
//执行任务cmd 命令行gulp
-----------------------------------------------------------------------
gulp.task("message",function(){
return console.log("这是制定任务")
})
//执行任务cmd 命令行gulp message
-----------------------------------------------------------------------
//拷贝文件
gulp.task("copyHtml",function(){
gulp.src("src/*.html") //src所有html
.pipe(gulp.dest("dist")) //输送到dist文件夹下
})
//执行任务cmd 命令行gulp copyHtml 这样就完成了文件拷贝
-----------------------------------------------------------------------
//图片压缩
cnpm i gulp-imagemin
gulp.task("imageMin",function(){
gulp.src("src/images/*") //src/images所有的东西
.pipe(imagemin()) //调用上面的方法
.pipe(gulp.dest("dist/images")) //输送到dist/images文件夹下
})
//执行任务cmd 命令行gulp imageMin 这样就完成了图片压缩
-----------------------------------------------------------------------
//压缩js文件
cnpm i gulp-uglify
gulp.task("minify",function(){
gulp.src("src/js/*.js") //src/js所有的js
.pipe(uglify()) //调用上面的方法
.pipe(gulp.dest("dist/js")) //输送到dist/js文件夹下
})
//执行任务cmd 命令行gulp minify 这样就完成了js压缩;
-----------------------------------------------------------------------
//sass转换为css
cnpm i gulp-sass
gulp.task("sass",function(){
gulp.src("src/sass/*.scss") //src/sass所有的scss文件
.pipe(sass().on("erro",sass.logError)) //调用上面的方法,并且打印错误;
.pipe(gulp.dest("dist/css")) //输送到dist/css文件夹下
})
//执行任务cmd 命令行gulp sass 这样就完成了sass转换为css;
-----------------------------------------------------------------------
//代码合并
cnpm i gulp-concat
gulp.task("concatScripts",function(){
gulp.src("src/js/*.js") //src/js所有的js
.pipe(concat("main.js")) //合并之后的文件名;
.pipe(uglify()) //压缩js;如果这里做了合并代码的操作可以不用单独压缩js文件
.pipe(gulp.dest("dist/js")) //输送到dist/js文件夹下
})
//执行任务cmd 命令行concatScripts
-----------------------------------------------------------------------
//监听文件是否变化
gulp.task("watch",function(){
gulp.watch("src/js/*.js",["concatScripts"]);
gulp.watch("src/images/*",["imageMin"]);
gulp.watch("src/sass/*.scss",["sass"]);
gulp.watch("src/js/*.html",["copyHtml"]);
})
//执行任务cmd 命令行gulp watch
-----------------------------------------------------------------------
//执行多个任务
gulp.task("default",[任务一,任务二,任务三....])
//执行任务cmd 命令行gulp

最新文章

  1. HTML5规范-相关资料链接(大多都是英文文档)
  2. sphinx搜索实例
  3. 将csv文件读入数据库
  4. Asp.net Core WebApi 支持json/xml格式的数据返回
  5. Fatal error compiling: 无效的目标发行版: 1.8 -> [Help 1] (zhuan)
  6. JS实现冒泡排序,插入排序和快速排序(从input中获取内容)
  7. HDU 1241Oil Deposits (DFS)
  8. vue-cli 脚手架 安装
  9. Java并发(一、概述)
  10. memcached源码分析-----slab内存分配器
  11. Python使用map,reduce高阶函数模拟实现Spark的reduceByKey算子功能
  12. 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'Address'中的标识列指
  13. vue-lazyload的使用
  14. std::lexicographical_compare函数的使用
  15. Android自定义一款带进度条的精美按键
  16. 微软BI 之SSAS 系列 - 实现Cube 以及角色扮演维度,度量值格式化和计算成员的创建
  17. C++&C#外挂(内存修改)
  18. Java之IO(十一)BufferedReader和BufferedWriter
  19. Divisibility by 25 CodeForces - 988E(模拟)
  20. 【jQuery学习】用JavaScript写一个输出多选框的个数报错:Cannot set property 'onclick' of null"

热门文章

  1. POJ - 2115 C Looooops(扩展欧几里德求解模线性方程(线性同余方程))
  2. oracle long 转varchar2
  3. SPOJ:Harbinger vs Sciencepal(分配问题&不错的DP&bitset优化)
  4. 详述IntelliJ IDEA插件的安装及使用方法(图解)
  5. 【203】利用UltraISO制作和刻录光盘映像的方法
  6. SPOJ FIBOSUM && FIBOSUM2
  7. linux的僵尸进程和孤儿进程
  8. js 将json字符串转换为json对象的方法解析-转
  9. Linux 问题 卸载setup.py方式安装的python包
  10. Log2Net的架构简介