使用gulp一共有四个步骤:

1. 全局安装 gulp:

$ npm install --global gulp

2. 作为项目的开发依赖(devDependencies)安装:

$ npm install gulp --save -d

3. 在项目根目录下创建一个名为 gulpfile.js 的文件:

var gulp = require('gulp');

gulp.task('default', function() {
// 将你的默认的任务代码放在这
});

4. 运行 gulp:

$ gulp

默认的名为 default 的任务(task)将会被运行,在这里,这个任务并未做任何事情。

想要单独执行特定的任务(task),请输入 gulp <task> <othertask>

下面用实例讲解一下如何编写gulpfile.js文件。

实例1.编写一个简单的实例:压缩css,js文件

/*gulpfile.js*/
var gulp = require('gulp'), //必须的
mincss = require('gulp-mini-css'), //压缩css
uglify = require('gulp-uglify'); //压缩js var raw_css = './raw/css',
com_css = './compress/css',
raw_js = './raw/js',
com_js = './compress/js'; gulp.task('mincss', function () { //mincss任务
gulp.src(raw_css+'/**/*.scss')
.pipe(mincss())
.pipe(gulp.dest(com_css));
}); gulp.task('minjs', function () { //minjs任务
gulp.src(raw_js+'/**/*.js')
.pipe(uglify())
.pipe(gulp.dest(com_js));
}); gulp.task('watch', function () { //监听任务
gulp.watch(raw_css+'/**/*.css',['mincss']);
gulp.watch(raw_js+'/**/*.js',['minjs']);
}); gulp.task('default',function(){ //默认执行
gulp.run('sass','minjs','mincss');
gulp.run('watch');
});

实例2.压缩合并一个文件夹的所有文件为一个min文件

/*gulpfile.js*/
var gulp = require('gulp'),
mincss = require('gulp-mini-css'), //压缩css
minjs = require('gulp-uglify'), //压缩js
concat = require('gulp-concat'), //合并
rename = require('gulp-rename'), //重命名
del = require('del'); //删除 var raw_css = './raw/css',
com_css = './compress/css',
raw_js = './raw/js',
com_js = './compress/js'; /*
方法名:压缩合并css
功能:将raw_css文件夹下所有.css文件 -> main.min.css
*/
gulp.task('minCss', function () {
gulp.src(raw_css+'/*.css') //输入
.pipe(concat("main.css")) //合并
.pipe(mincss()) //压缩css
.pipe(rename({suffix: '.min'})) //重命名
.pipe(gulp.dest(com_css)); //输出
}); /*
方法名:合并css
功能:将raw_css文件夹下所有.css文件 -> main.js
*/
gulp.task('concatCss', function () {
gulp.src(raw_css+'/*.css') //输入
.pipe(concat("main.css")) //合并
.pipe(gulp.dest(com_css)); //输出
}); /*
方法名:压缩合并js
功能:将raw_js文件夹下所有.js文件 -> main.min.js
*/
gulp.task('minJS', function () {
gulp.src(raw_js+'/*.js') //输入
.pipe(concat("main.js")) //合并
.pipe(minjs()) //压缩css
.pipe(rename({suffix: '.min'})) //重命名
.pipe(gulp.dest(com_js)); //输出
}); /*
方法名:合并js
功能:将raw_js文件夹下所有.js文件 -> main.js
*/
gulp.task('concatJS', function () {
gulp.src(raw_js+'/*.js') //输入
.pipe(concat("main.js")) //合并
.pipe(gulp.dest(com_js)); //输出
});
//默认执行
gulp.task('default',function(){
    gulp.run('minCss','concatCss','minJS','concatJS');
});

实例3.压缩合并多个文件夹的文件为一个min文件

/*gulpfile.js*/
var gulp = require('gulp'),
mincss = require('gulp-mini-css'), //压缩css
minjs = require('gulp-uglify'), //压缩js
concat = require('gulp-concat'), //合并
rename = require('gulp-rename'), //重命名
del = require('del'); //删除 var source_css = './public/styles', //css
des_css = './public/plugins/huidao/css',
source_js = './public/scripts', //js
des_js = './public/plugins/huidao/js'; //压缩合并css
gulp.task('minCss', function () {
gulp.src(source_css+'/*.css') //输入
.pipe(concat("huidao.css")) //合并
.pipe(mincss()) //压缩css
.pipe(rename({suffix: '.min'})) //重命名
.pipe(gulp.dest(des_css)); //输出
}); //合并css
gulp.task('concatCss', function () {
gulp.src(source_css+'/*.css') //输入
.pipe(concat("huidao.css")) //合并
.pipe(gulp.dest(des_css)); //输出
}); /*
*任务:压缩合并open的js
* huidao.open.min.js = /controller/open.controller.js + /controller/open/*.js + /factory/open/*.js
* */
gulp.task('minOpenJs', function () {
gulp
.src([source_js+"/controller/open.controller.js",source_js+"/controller/open/*.js",source_js+"/factory/open/*.js"])
.pipe(concat("huidao.open.js"))
.pipe(minjs())
.pipe(rename({suffix:'.min'}))
.pipe(gulp.dest(des_js));
}); /*
*任务:合并open的js
* huidao.open.js = /controller/open.controller.js + /controller/open/*.js + /factory/open/*.js
* */
gulp.task('concatOpenJs', function () {
gulp
.src([source_js+"/controller/open.controller.js",source_js+"/controller/open/*.js",source_js+"/factory/open/*.js"])
.pipe(concat("huidao.open.js"))
.pipe(gulp.dest(des_js));
}); /*
*任务:压缩合并developer的js
* huidao.developer.min.js = /controller/developer.controller.js + /controller/developer/*.js + /factory/developer/*.js
* */
gulp.task('minDeveloperJs', function () {
gulp
.src([source_js+"/controller/developer.controller.js",source_js+"/controller/developer/*.js",source_js+"/factory/developer/*.js"])
.pipe(concat("huidao.developer.js"))
.pipe(minjs())
.pipe(rename({suffix:'.min'}))
.pipe(gulp.dest(des_js));
}); /*
*任务:合并developer的js
* huidao.developer.js = /controller/developer.controller.js + /controller/developer/*.js + /factory/developer/*.js
* */
gulp.task('concatDeveloperJs', function () {
gulp
.src([source_js+"/controller/developer.controller.js",source_js+"/controller/developer/*.js",source_js+"/factory/developer/*.js"])
.pipe(concat("huidao.developer.js"))
.pipe(gulp.dest(des_js));
}); /*
*任务:压缩合并admin的js
* huidao.admin.min.js = /controller/admin.controller.js + /controller/admin/*.js + /factory/admin/*.js
* */
gulp.task('minAdminJs', function () {
gulp
.src([source_js+"/controller/admin.controller.js",source_js+"/factory/admin/*.js",source_js+"/controller/admin/*.js"])
.pipe(concat("huidao.admin.js"))
.pipe(minjs())
.pipe(rename({suffix:'.min'}))
.pipe(gulp.dest(des_js));
}); /*
*任务:合并admin的js
* huidao.admin.js = /controller/admin.controller.js + /controller/admin/*.js + /factory/admin/*.js
* */
gulp.task('concatAdminJs', function () {
gulp
.src([source_js+"/controller/admin.controller.js",source_js+"/factory/admin/*.js",source_js+"/controller/admin/*.js"])
.pipe(concat("huidao.admin.js"))
.pipe(gulp.dest(des_js));
}); //默认执行
gulp.task('default',function(){
gulp.run('minCss','concatCss','minOpenJs','concatOpenJs','minDeveloperJs','concatDeveloperJs','minAdminJs','concatAdminJs');
});

编写gulpfile.js文件:压缩合并css、js的更多相关文章

  1. 折腾一两天,终于学会使用grunt压缩合并混淆JS脚本,小激动,特意记录一下+spm一点意外收获

    很长时间没有更新博客了,实在是太忙啦...0.0 ,以下的东西纯粹是记录,不是我原创,放到收藏夹还担心不够,这个以后常用,想来想去,还是放到这里吧,,丢不了..最后一句废话,网上搜集也好原创也罢,能解 ...

  2. IIS7的集成模式下如何让自定义的HttpModule不处理静态文件(.html .css .js .jpeg等)请求

    今天将开发好的ASP.NET站点部署到客户的服务器上后,发现了一个非常头疼的问题,那么就是IIS7的应用程序池是集成模式的话,ASP.NET项目中自定义的HttpModule会处理静态文件(.html ...

  3. gulp完成javascript压缩合并,css压缩

    最近需要对项目进行优化,主要是对js的压缩合并和css文件的压缩,查找相关资料之后发现gulp可以实现相关的功能,特此分享一下使用心得. 1.安装gulp gulp是基于Node.js的前端构建工具. ...

  4. php大力力 [028节] 如何下载js文件,网上一个*.js无法下载啊??????

    php大力力 [028节] 如何下载js文件,网上一个*.js无法下载啊?????? safari也无法下载 迅雷也无法下载 是不是对方网站服务器的不让下载那个js目录的文件??? 只能调用js函数啊 ...

  5. 动态加载JS文件,并根据JS文件的加载状态来执行自己的回调函数

    动态加载JS文件,并根据JS文件的加载状态来执行自己的回调函数, 在很多场景下,我们需要在动态加载JS文件的时候,根据加载的状态来进行后续的操作,需要在JS加载成功后,执行另一方法,这个方法是依托在加 ...

  6. Js文件中调用其它Js函数的方法

    在项目开发过程中,也许你会遇这样的情况.在某一Js文件中需要完成某一功能,但这一功能的大部分代码在另外一个Js文件中已经完成了,自己只需要调用这个方法再加上几句代码就可以实现所需的功能.我们知道,在h ...

  7. js文件中引用其他js文件

    这一个功能的作用是做自己的js包时,可以通过引入一个整体的js文件而引入其他js. 只需要在总体的js加上这一句话 document.write("<script type='text ...

  8. 文字添加响应事件,js动态加载CSS, js弹出DIV

    文字添加响应事件,js动态加载CSS, js弹出DIV <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu ...

  9. webstorm创建js文件时自动生成js注释

    设置webstorm创建js文件时自动生成js注释 settings--Editor--File and Code Temlates 黑色框框里的内容自己填写上去,以下是参考的代码块: /** * @ ...

随机推荐

  1. 关于yum的一些安装问题

    最近折腾CentOS和kubernetes,遇到一些安装问题,把和yum相关的逐步总结如下: 如何用本地的cdrom作为yum源 mount /dev/cdrom /mnt 先查询是否安装了creat ...

  2. Automatic Diagnostic Repository

    转载自 http://www.eygle.com/archives/2007/08/11g_auto_diag_repository.html#comments Oracle Database 11g ...

  3. delphi 接口Interface

    学习 delphi 接口 一切都是纸老虎!!! 第四章          接口 前不久,有位搞软件的朋友给我出了个谜语.谜面是“相亲”,让我猜一软件术语.我大约想了一分钟,猜 出谜底是“面向对象”.我 ...

  4. sqls

    ALTER TABLE `shh_data`.`topic_floor` ADD COLUMN `updated_date` DATETIME NULL AFTER `publish_date`,AD ...

  5. bootstrap popover 如何在hover状态移动到弹出上不消失

    bootstrap中的popover其实就是对tooltip做了一定升级,拥有了标题和内容 概要 使用的时候依赖第三方插件 依赖tooltip插件 必须初始化 title 和 content 可以在p ...

  6. lodash 判断相等 eq isEqual

    var object = { 'a': 1 }; var other = { 'a': 1 }; //true console.log(_.eq(object, object)) //true con ...

  7. iOS 自定义转场动画浅谈

    代码地址如下:http://www.demodashi.com/demo/11612.html 路漫漫其修远兮,吾将上下而求索 前记 想研究自定义转场动画很久了,时间就像海绵,挤一挤还是有的,花了差不 ...

  8. 【MyBatis学习03】原始dao开发方法及其弊端

    上一篇博文总结了一下mybatis的入门,接下来就要开发dao方法了,这篇博文主要总结一下mybatis中原始dao开发的方法,最后并总结一下原始dao开发方法的弊端.mybatis中dao开发应该使 ...

  9. H5网站模板——前台和后台

    以下是比较典型的前台或者后台的H5模板: html5优分期大学生分期购物商城模板链接:http://pan.baidu.com/s/1dEUAzBz 密码:j150 红色的五金电气商城网站模板链接:h ...

  10. TCP/IP ---封装与分用

    封装 当应用程序用T C P传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络.其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息),该过程如图1 - 7所示 ...