编写gulpfile.js文件:压缩合并css、js
使用gulp一共有四个步骤:
1. 全局安装 gulp:
2. 作为项目的开发依赖(devDependencies)安装:
3. 在项目根目录下创建一个名为
|
下面用实例讲解一下如何编写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的更多相关文章
- 折腾一两天,终于学会使用grunt压缩合并混淆JS脚本,小激动,特意记录一下+spm一点意外收获
很长时间没有更新博客了,实在是太忙啦...0.0 ,以下的东西纯粹是记录,不是我原创,放到收藏夹还担心不够,这个以后常用,想来想去,还是放到这里吧,,丢不了..最后一句废话,网上搜集也好原创也罢,能解 ...
- IIS7的集成模式下如何让自定义的HttpModule不处理静态文件(.html .css .js .jpeg等)请求
今天将开发好的ASP.NET站点部署到客户的服务器上后,发现了一个非常头疼的问题,那么就是IIS7的应用程序池是集成模式的话,ASP.NET项目中自定义的HttpModule会处理静态文件(.html ...
- gulp完成javascript压缩合并,css压缩
最近需要对项目进行优化,主要是对js的压缩合并和css文件的压缩,查找相关资料之后发现gulp可以实现相关的功能,特此分享一下使用心得. 1.安装gulp gulp是基于Node.js的前端构建工具. ...
- php大力力 [028节] 如何下载js文件,网上一个*.js无法下载啊??????
php大力力 [028节] 如何下载js文件,网上一个*.js无法下载啊?????? safari也无法下载 迅雷也无法下载 是不是对方网站服务器的不让下载那个js目录的文件??? 只能调用js函数啊 ...
- 动态加载JS文件,并根据JS文件的加载状态来执行自己的回调函数
动态加载JS文件,并根据JS文件的加载状态来执行自己的回调函数, 在很多场景下,我们需要在动态加载JS文件的时候,根据加载的状态来进行后续的操作,需要在JS加载成功后,执行另一方法,这个方法是依托在加 ...
- Js文件中调用其它Js函数的方法
在项目开发过程中,也许你会遇这样的情况.在某一Js文件中需要完成某一功能,但这一功能的大部分代码在另外一个Js文件中已经完成了,自己只需要调用这个方法再加上几句代码就可以实现所需的功能.我们知道,在h ...
- js文件中引用其他js文件
这一个功能的作用是做自己的js包时,可以通过引入一个整体的js文件而引入其他js. 只需要在总体的js加上这一句话 document.write("<script type='text ...
- 文字添加响应事件,js动态加载CSS, js弹出DIV
文字添加响应事件,js动态加载CSS, js弹出DIV <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu ...
- webstorm创建js文件时自动生成js注释
设置webstorm创建js文件时自动生成js注释 settings--Editor--File and Code Temlates 黑色框框里的内容自己填写上去,以下是参考的代码块: /** * @ ...
随机推荐
- npm install -S -D -g 有什么区别
npm install module_name -S 即 npm install module_name --save 写入dependencies npm install modu ...
- crontab 写入文件目录
一.crontab 目录 [root@next-cloud-server etc]# cd /var/spool/cron/ [root@next-cloud-server cron]# ls roo ...
- OOP几大原则【转】
设计模式遵循的一般原则: 1.开-闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开发,对修改关闭.说的是,再设计一个模块的时候,应当使这个模块可以在不被修改的前 ...
- RequireJS全面讲解
异步模块定义(AMD) 谈起RequireJS,你无法绕过提及JavaScript模块是什么,以及AMD是什么. JavaScript模块只是遵循SRP(Single Responsibility ...
- [Typescript] Improve Readability with TypeScript Numeric Separators when working with Large Numbers
When looking at large numbers in code (such as 1800000) it’s oftentimes difficult for the human eye ...
- ssh中使用spring的集成quartz 编写定时任务
之前没有使用框架开发时对于开发定时任务都是 使用java的原声timer类,重写线程的run方法跑要执行的任务.刚刚换的新公司,项目使用ssh2,目前该项目中的定时任务的使用spirng集成的quar ...
- Unity Android && Ant Automate Build 之一
这几天抽空研究下Android SDK 自动化打包.顺便温习下Unity 与 Android 交互机制. 一.Unity 与 Android 的 消息传递机制 Example: 导出 Android ...
- Python中json.loads解析包含\n的字符串会出错
用python中的json.loads解析字符串,失败了. [解决过程] 1.调试了半天,终于发现,如果把其中的: "呵呵加那么多连接啊\n\n这个标准还是不错的\n\n给大家推荐一个更多的 ...
- js标准化价钱
//标准化总价钱 s:总价钱,n:保留几位小数 function fmoney(s, n) { n = n > 0 && n <= 20 ? n : 2; s = pars ...
- 一个由正则表达式引发的血案 vs2017使用rdlc实现批量打印 vs2017使用rdlc [asp.net core 源码分析] 01 - Session SignalR sql for xml path用法 MemCahe C# 操作Excel图形——绘制、读取、隐藏、删除图形 IOC,DIP,DI,IoC容器
1. 血案由来 近期我在为Lazada卖家中心做一个自助注册的项目,其中的shop name校验规则较为复杂,要求:1. 英文字母大小写2. 数字3. 越南文4. 一些特殊字符,如“&”,“- ...