使用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. Restful Web Service部署到weblogic 12c

    介绍一下环境: 首先需要下载一个jaxrs-ri-2.22.2.zip的包 采用Jdeveloper 12c版本,jdk1.8 WebLogic Server 12.2.1版本 Restful项目建立 ...

  2. javascript快速入门9--引用类型

    引用类型通常叫做类(class),也就是说,遇到引用值,所处理的就是对象. 注意:从传统意义上来说,ECMAScript 并不真正具有类.事实上,除了说明不存在类,在 ECMA-262 中根本没有出现 ...

  3. http://zhidao.baidu.com/link?url=fX6C1xFLsqiuTY88cjwJYal2x52rOwlJstmz7KWyMc6l9j3FHw2yhvp83timZ86pwhqQ8rONj2xkgo2wbU2tLK

    http://zhidao.baidu.com/link?url=fX6C1xFLsqiuTY88cjwJYal2x52rOwlJstmz7KWyMc6l9j3FHw2yhvp83timZ86pwhq ...

  4. 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何获取标准驱动器扭矩值获取电流值

    双击某个驱动器(以松下伺服驱动器为例),在Process Data中,注意默认显示了PDO mapping1的数据(Error code, status word等)   注意左侧,2和3分别表示了与 ...

  5. ant-design 实现 搜索功能

    1.逻辑代码 list.js /** * 用户列表页 */ import React,{ PureComponent } from 'react' import {connect} from 'rea ...

  6. lodash 类型判断

    1.isArray _.isArray(value) 检查 value 是否是 Array 类对象. 2.isElement _.isElement(value) 检查 value 是否是可能是 DO ...

  7. UVA 11534 - Say Goodbye to Tic-Tac-Toe(博弈sg函数)

    UVA 11534 - Say Goodbye to Tic-Tac-Toe 题目链接 题意:给定一个序列,轮流放XO,要求不能有连续的XX或OO.最后一个放的人赢.问谁赢 思路:sg函数.每一段.. ...

  8. JDK自带监控工具 jps、jinfo、jstat、jmap、jconsole

    分类: JVM 2010-10-04 11:05 587人阅读 评论(0) 收藏 举报 工具jdkjava远程连接unixstring 常用有五个命令行工具: jinfo: 可以输出并修改运行时的ja ...

  9. Swift 泛型參数

    原文:http://www.cocoachina.com/newbie/basic/2014/0612/8802.html 本页内容包含:泛型形參语句和泛型实參语句 本节涉及泛型类型.泛型函数以及泛型 ...

  10. 檢查php文件中是否含有bom的php文件

    原文链接: http://www.cnblogs.com/Athrun/archive/2010/05/27/1745464.html 另一篇文章:<关于bom.php>,http://h ...