前端构建工具Gulp使用总结
1.安装准备
1.1 Node.js安装
在安装Gulp之前首先的安装Node.js,
安装教程详见Node.js 安装配置
1.2 npm安装
在安装node的时候会自动安装npm模块管理器,详见npm模块管理器
win+r输入cmd打开命令终端
- node -v查看所安装的node的版本号
- npm -v查看所安装的npm的版本号
用win系统终端命令进入项目根目录
- d: 进入d盘
- dir d盘下文件列表
- cd www 进入www文件夹,直至根目录
- cd .. 退回上一级文件夹
2. 安装Gulp
2.1 全局安装
在全局安装gulpnpm install gulp -g 
2.2 新建package.json文件
npm init 配置package.json文件
2.3 本地安装
进入项目根目录再安装一遍npm install gulp --save-dev 
3. 安装插件
我们将要使用Gulp插件来完成以下任务:
- less的编译(gulp-less)
- 压缩js代码(gulp-uglify)
- 压缩css(gulp-minify-css)
- 压缩html(gulp-minify-html)
- 压缩图片(gulp-imagemin)
- 图片缓存(gulp-cache)
- 文件重命名(gulp-rename)
- 更改提醒(gulp-notify)
- 清除文件(del)
安装以上插件
4. 新建gulpfile.js文件
说明:gulpfile.js是gulp项目的配置文件,是位于项目根目录的普通js文件
//导入工具包 require('node_modules里对应模块')
var gulp      = require('gulp');                    //本地安装gulp所用到的地方
var less      = require('gulp-less');               // 获取 gulp-less 模块(用于编译Less)
var jsmin     = require('gulp-uglify');             //JS文件压缩
var cssmin    = require('gulp-minify-css');         //css文件压缩
var htmlmin   = require('gulp-minify-html');        //html文件压缩
var cache     = require('gulp-cache');              //图片缓存
var imgmin    = require('gulp-imagemin');           //图片压缩
var notify    = require('gulp-notify');             //更动通知
var rename    = require('gulp-rename');             //重命名
var del       = require('del');
//var sass      = require('gulp-ruby-sass');          //编译SASS
// var jshint    = require('gulp-jshint');          //js代码检查
// var contact   = require('gulp-contact');        //合并js或css文件等
//gulp.task(name[, deps], fn)   定义任务  name:任务名称 deps:依赖任务名称 fn:回调函数
//gulp.src(globs[, options])    执行任务处理的文件  globs:处理的文件路径(字符串或者字符串数组)
//gulp.dest(path[, options])    处理完后文件生成路径
//gulp.watch(glob[, opts], tasks) 监视文件,并且可以在文件发生改动时候做一些事情。
//定义一个less任务(自定义任务名称)
// 编译Less ,在命令行项目目录下使用 gulp less 启动此任务
// gulp.task('less', function () {
//     gulp.src('docs/*/less/*.less')            //该任务针对的文件
//         .pipe(less())                         //该任务调用的模块
//         .pipe(gulp.dest('dist/css'))          //将会在dist/css下生成对应的css文件
//         .pipe(notify({ message: 'less task complete' }));
// });
//css文件压缩,在命令行项目目录下使用 gulp cssmin 启动此任务
gulp.task('cssmin', function () {
    gulp.src('docs/*/css/*.css')
        .pipe(cssmin({
            advanced: false,//类型:Boolean 默认:true [是否开启高级优化(合并选择器等)]
            compatibility: 'ie7',//保留ie7及以下兼容写法 类型:String 默认:''or'*' [启用兼容模式; 'ie7':IE7兼容模式,'ie8':IE8兼容模式,'*':IE9+兼容模式]
            keepBreaks: false//类型:Boolean 默认:false [是否保留换行]
        }))
        .pipe(rename({ suffix: '.min' }))  //对压缩后的文件重命名
        .pipe(gulp.dest('dist'))
        .pipe(notify({ message: 'cssmin task complete' }));
});
// js文件压缩 ,在命令行项目目录下使用 gulp jsmin 启动此任务
gulp.task('jsmin', function() {
    gulp.src('docs/**/js/*.js')              // 1. 找到文件
        .pipe(jsmin())                       // 2. 压缩文件
        .pipe(rename({extname:'.min.js'}))   // 3.对压缩文件重命名
        .pipe(gulp.dest('dist'))             // 4. 输出压缩后的文件
        .pipe(notify({ message: 'jsmin task complete' }));
});
//图片压缩,在命令行项目目录下使用 gulp imgmin 启动此任务
gulp.task('imgmin', function() {
    gulp.src('docs/*/img/**/*.{png,jpg,gif,ico}')
        .pipe(cache(imgmin({
            optimizationLevel: 5,//类型:Number  默认:3  取值范围:0-7(优化等级)
            progressive: true,   //类型:Boolean 默认:false 无损压缩jpg图片
            interlaced: true,    //类型:Boolean 默认:false 隔行扫描gif进行渲染
            multipass: true      //类型:Boolean 默认:false 多次优化svg直到完全优化
        })))
        .pipe(gulp.dest('dist'))
        .pipe(notify({ message: 'imagemin task complete' }));
});
//html文件压缩,在命令行项目目录下使用 gulp htmlmin 启动此任务
gulp.task('htmlmin', function () {
    gulp.src('docs/*/*.html')       // 要压缩的html文件
        .pipe(htmlmin())            //压缩
        .pipe(gulp.dest('dist'))
        .pipe(notify({ message: 'htmlmin task complete' }));
});
//字体文件复制
gulp.task('fonts',function(){
    gulp.src('docs/*/fonts')
        .pipe(gulp.dest('dist'))
        .pipe(notify({message: 'fonts task complete'}));
})
// js代码检查
// gulp.task('jshint', function() {
//     gulp.src('docs/js/*.js')
//         .pipe(jshint())
//         // .pipe(jshint.reporter('default')); //默认在命令行里输出结果
//         .pipe(jshint.reporter('gulp-jshint-html-reporter', {filename:'jshint-report.html'}));    //输出结果到自定义的html文件
// });
//合并js或css文件等
// gulp.task('scripts', function() {
//     gulp.src('./js/*.js')
//         .pipe(concat('all.js'))
//         .pipe(gulp.dest('./dist'))
//         .pipe(rename('all.min.js'))
//         .pipe(uglify())
//         .pipe(gulp.dest('./dist'));
// });
//
// 编译SASS
// gulp.task('sass', function(){
//
//
//
// })
//
//
//在任务执行前,最好先清除之前生成的文件:
gulp.task('clean', function() {
     return del(['dist']);  //删除发布环境文件
});
// 默认任务,在命令行项目目录下使用 gulp 启动此任务
gulp.task('default',['clean'],function(){  //在默认任务执行前,先执行清除任务
    gulp.start('cssmin', 'jsmin', 'imgmin', 'htmlmin');
});
 //监听文件变化,在命令行项目目录下使用 gulp watch启动此任务,监听的文件有变化就自动执行
 gulp.task('watch',function(){
     //监听css
     gulp.watch('docs/*/css/*.css',['cssmin']);
     //监听js
     gulp.watch('docs/*/js/*.js',['jsmin']);
     //监听img
     gulp.watch('docs/*/img/*/*.{png,jpg,gif,ico}',['imgmin']);
     //监听HTML
     gulp.watch('docs/*/*.html',['htmlmin']);
 });
5. 运行Gulp
- 通过终端命令行进入项目根目录
- gulp default或- default(说明:命令提示符执行gulp 任务名称)
如有不明之处,还请参阅gulp详细入门教程
前端构建工具Gulp使用总结的更多相关文章
- (转载)前端构建工具gulp使用
		前端构建工具gulp使用 前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 http://www.gulpjs.com.cn/ Gulp中 ... 
- (转)前端构建工具gulp入门教程
		前端构建工具gulp入门教程 老婆婆 1.8k 2013年12月30日 发布 推荐 10 推荐 收藏 83 收藏,20k 浏览 本文假设你之前没有用过任何任务脚本(task runner)和命令行工具 ... 
- 前端构建工具gulp
		前端构建工具gulp使用 前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 http://www.gulpjs.com.cn/ Gul ... 
- 前端构建工具gulp使用
		前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 http://www.gulpjs.com.cn/ Gulp中文文档 https://g ... 
- 前端构建工具gulp介绍
		2016年3月3日 10:46:08 晴 前端构建工具gulpjs的使用介绍及技巧 gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简 ... 
- 前端构建工具 Gulp.js 上手实例
		在软件开发中使用自动化构建工具的好处是显而易见的.通过工具自动化运行大量单调乏味.重复性的任务,比如图像压缩.文件合并.代码压缩.单元测试等等,可以为开发者节约大量的时间,使我们能够专注于真正重要的. ... 
- 前端读者 | 前端构建工具Gulp
		@羯瑞 整理 前言 前端工具现在层出不穷,网上搜下一大片,就看你怎么去使用了,基于项目看用什么样的构建工具.有的工具提供的功能还是非常强大的. FIS.百度团队的产品.现在百度的多个产品中使用.面向前 ... 
- 前端构建工具 Gulp 压缩合并JS/CSS 并添加版本号、ES6转ES5
		Gulp 基于 Node.js 的前端构建工具,可以实现前端代码的编译(sass.less).压缩合并(JS.CSS).测试:图片的压缩:已经添加 JS 和 CSS 版本号,防止浏览器缓存. 1. 安 ... 
- 前端构建工具gulp使用 (转)
		http://www.cnblogs.com/starof/p/5194622.html 前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 ... 
- 自动化前端构建工具--gulp
		Gulp是一个基于任务的javascript工程命令行流式构建工具.为什么要用Gulp呢?前端开发进入到工程化阶段,我们需要压缩合并文件,加MD5戳:如果使用 CoffeeScript/ES6 去代替 ... 
随机推荐
- php javascript comet
			简单描述: comet是用ajax实现的服务器推送,有两种实现comet的方式,长轮询和流,这里只实现长轮询. 长轮询的过程:页面发起一个服务器请求,然后服务器一直保持连接打开,直到有数据返回.返回数 ... 
- JDK并发包总结
			本文主要介绍jdk中常用的同步控制工具以及并发容器, 其结构如下: 同步控制工具类 ReentrantLock 简而言之, 就是自由度更高的synchronized, 主要具备以下优点. 可重入: 单 ... 
- JS 中 if / if...else...替换方式
			说说烂大街的if/if...else...,程序中用得最多的流程判断语句. 对着曾经满屏的if/if...else...,心想能不能搞点事情,折腾点浪花浪里呀浪. 对顶着"这个需求很简单,怎 ... 
- JAVA与DOM解析器提高(DOM/SAX/JDOM/DOM4j/XPath) 学习笔记二
			要求 必备知识 JAVA基础知识.XML基础知识. 开发环境 MyEclipse10 资料下载 源码下载 sax.dom是两种对xml文档进行解析的方法(没有具体实现,只是接口),所以只有它们是无 ... 
- 第三方登录:新浪微博登录(OAuth2.0)
			在<Github第三方登录--通用化的第三方登陆实现>中我们实现了一个通用化的第三方登录框架,其中包括OAUth的基本流程以及最简单的用户注册.但是不同的第三方登录因为其细节不同还是有很多 ... 
- java命令行指定log4j2
			java -Dlog4j.configurationFile=directory/file.xml 
- java-构建jar带哟参数提示的
			使用command的cli包构建带有参数提示的jar包 需要引入command cli的依赖 <commons.version>1.2</commons.version> &l ... 
- postgresql主从配置
			master:10.0.1.114 slaver:10.0.1.116 一.yum安装https://blog.csdn.net/weixin_41048363/article/details/803 ... 
- 生成对抗网络(GAN)
			基本思想 GAN全称生成对抗网络,是生成模型的一种,而他的训练则是处于一种对抗博弈状态中的. 譬如:我要升职加薪,你领导力还不行,我现在领导力有了要升职加薪,你执行力还不行,我现在执行力有了要升职加薪 ... 
- 如何精准实现OCR文字识别?
			欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由云计算基础发表于云+社区专栏 前言 2018年3月27日腾讯云云+社区联合腾讯云智能图像团队共同在客户群举办了腾讯云OCR文字识别-- ... 
