var gulp = require('gulp');
var clean = require('gulp-clean');
var concat = require('gulp-concat');
//var jade = require('gulp-jade'); //暂时不需要
//var sass = require('gulp-sass'); //可以为sass、less、scss var util = require('gulp-util'); //输入提示,日志
var notify = require('gulp-notify'); //系统提示 var browserSync = require('browser-sync');// 浏览器异步处理
var reload = browserSync.reload; var runSequence = require('run-sequence'); //执行顺序 var uglify = require('gulp-uglify'); //专门压缩js
var cleanCSS = require('gulp-clean-css'); //css压缩
var htmlmin = require('gulp-htmlmin'); //html压缩 //var assetRev = require('gulp-asset-rev'); //加版本号 var rev = require('gulp-rev'); //版本管理
var revCollector = require('gulp-rev-collector'); //版本管理 var src = {
html:['src/html/*.html'],
css:['src/css/*.css'],
js:['src/js/*.js']
} var build = {
base:'dist/',
views:'dist/views/',
css:'dist/css/',
js:'dist/js/'
} gulp.task('build:clean',function(){ return gulp.src(build.base,{read:false})
.pipe(clean({force:true}))
.pipe(notify(({message:'清除---目录结构'}))) }) gulp.task('build:views',function(){ return gulp.src(src.html)
.pipe(htmlmin({collapseWhitespace: true,minifyJS:true,minifyCSS:true})) //minifyJS----压缩页面中js
.pipe(gulp.dest(build.base))
.pipe(browserSync.reload({stream:true}))
.pipe(notify({message:'html---编译完成'})) }) gulp.task('build:css',function(){ return gulp.src(src.css)
.pipe(concat('app.css'))
.pipe(cleanCSS({debug: true}, function(details) {
console.log(details.name + ': ' + details.stats.originalSize);
console.log(details.name + ': ' + details.stats.minifiedSize);
}))
.pipe(gulp.dest(build.css))
.pipe(browserSync.reload({stream:true}))
.pipe(notify({message:'css---编译完成'})) }) /*
return gulp.src('styles/*.css')
.pipe(cleanCSS({debug: true}, function(details) {
console.log(details.name + ': ' + details.stats.originalSize);
console.log(details.name + ': ' + details.stats.minifiedSize);
}))
.pipe(gulp.dest('dist')); */ gulp.task('build:js',function(){ return gulp.src(src.js)
.pipe(concat('app.js'))
.pipe(uglify())
.pipe(gulp.dest(build.js))
.pipe(browserSync.reload({stream:true}))
.pipe(notify({message:'js编译完成'})) }) gulp.task('build:app',['build:css','build:js','build:views']) gulp.task('build',function(){ runSequence('build:clean',['build:app']) }) gulp.task('bs:sync',function(){ browserSync({ notify:false,
port:3006,
server:{
baseDir:build.base
} }) }) gulp.task('watch',function(){ gulp.watch(src.html,['build:views']),
gulp.watch(src.js,['build:js']),
gulp.watch(src.css,['build:css']) })
/*
做同步到浏览器:再编译之后自动刷新浏览器 */ //--------------------------gulp执行----------------------------
gulp.task('default',function(){ //下面两种运行方式都可以
gulp.start('build','watch','bs:sync')
//runSequence('build','bs:sync','watch') }) //------------------------------------------------------ gulp.task('help',function(){ console.log('build 创建')
console.log('prod----- 生产') }) /*function log(msg){
util.log(util.colors.blue(msg))
}
function handleError(err){ log(err.toString());
this.emit('end'); }
*/

  package.json包

{
"name": "my-gulp",
"version": "1.0.0",
"description": "demo",
"dependencies": {
"express": "3.x",
"gulp-rev-collector": "^1.2.2"
},
"devDependencies": {
"browser-sync": "^2.12.3",
"gulp-asset-rev": "0.0.15",
"gulp-clean": "^0.3.2",
"gulp-clean-css": "^3.8.0",
"gulp-concat": "^2.6.0",
"gulp-htmlmin": "^3.0.0",
"gulp-mini-css": "^0.0.3",
"gulp-notify": "^3.0.0",
"gulp-requirejs-optimize": "^0.3.2",
"gulp-rev": "^8.0.0",
"gulp-uglify": "^1.5.3",
"run-sequence": "^2.1.0"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "chua",
"license": "ISC"
}

  

gulp基本设置的更多相关文章

  1. gulp入门与一些基本设置

    这里是gulp入门的一些操作,实现了编译sass文件.压缩.合并.添加版本号等基本功能. 友情提示,如果npm出现无法下载可以安装 cnpm.在安装完Nodejs 后 npm install cnpm ...

  2. 前端自动化构建工具 Gulp 使用

    一个月没写博客了,今天有时间,就写个gulp的入门使用吧.. 简介:gulp是一个前端自动化构建工具,可以实现代码的检查.压缩.合并……等等,gulp是基于Node.js的自动任务运行器 一.安装No ...

  3. Gulp思维——Gulp高级技巧

    本文翻译自Getting gulpy -- Advanced tips for using gulp.js 感受过gulp.js带来的兴奋过后,你需要的不仅仅是它的光鲜,而是切切实实的实例.这篇文章讨 ...

  4. [转]Gulp思维 —— Gulp高级技巧

    感受过gulp.js带来的兴奋过后,你需要的不仅仅是它的光鲜,而是切切实实的实例.这篇文章讨论了一些使用gulp.js时常踩的坑,以及一些更加高级和定制化的插件和流的使用技巧. 基本任务 gulp的基 ...

  5. 构建一个基本的前端自动化开发环境 —— 基于 Gulp 的前端集成解决方案(四)

    通过前面几节的准备工作,对于 npm / node / gulp 应该已经有了基本的认识,本节主要介绍如何构建一个基本的前端自动化开发环境. 下面将逐步构建一个可以自动编译 sass 文件.压缩 ja ...

  6. 常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)

    前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本 ...

  7. 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一)

    相关连接导航 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二) 常用 Gulp 插件汇总 ...

  8. 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二)

    前言 文章 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 中,已经完成对 gulp 的安装,由于是window环境,文中特意提到了可以通过安装 gitbash 来代替 ...

  9. gulp详细入门教程

    本文链接:http://www.ydcss.com/archives/18 gulp详细入门教程 简介: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优 ...

随机推荐

  1. DataTable的Merge\COPY\AcceptChange使用说明

    在C#内使用DataTable的Merge().Copy().AcceptChange().Clone()方法的用途如下: 1.Merge()可将两个不同的表结构的表进行合并,合并后新表的列为之前两表 ...

  2. java的3大特性

    java的3大特性 1.继承: * 继承是从已有类得到继承信息创建新类的过程. * 提供继承信息的类被称为父类(超类.基类):得到继承信息的类被称为子类(派生类). * 继承让变化中的软件系统有定的延 ...

  3. DataRow[]

    datarow[]是datatable 的行数组集合,但是呢好像是不能直接初始化,只能是datarow[] rows = dt.select(condition);这样子.(也可能我才疏学浅没找到吧) ...

  4. 如何在Linux下查看版本信息

    Linux下如何查看版本信息, 包括位数.版本信息以及CPU内核信息.CPU具体型号等等,整个CPU信息一目了然.   1.# uname -a   (Linux查看版本当前操作系统内核信息)   L ...

  5. 阿里分布式事务解决方案-GTS

    摘要: 本文将深入和大家探讨微服务架构下,分布式事务的各种解决方案,并重点为大家解读阿里巴巴提出的分布式事务解决方案----GTS.该方案中提到的GTS是全新一代解决微服务问题的分布式事务互联网中间件 ...

  6. linux 完全关闭tomcat

    由于直接调用tomcat的 shutdown.sh 有时无法完全关闭掉tomcat,使用 ps -ef | grep tomcat 查找发现tomcat依然还存在,并未完全关掉.在 catalina. ...

  7. [Swift]LeetCode374. 猜数字大小 | Guess Number Higher or Lower

    We are playing the Guess Game. The game is as follows: I pick a number from 1 to n. You have to gues ...

  8. [Swift]LeetCode387. 字符串中的第一个唯一字符 | First Unique Character in a String

    Given a string, find the first non-repeating character in it and return it's index. If it doesn't ex ...

  9. [Swift]LeetCode414. 第三大的数 | Third Maximum Number

    Given a non-empty array of integers, return the third maximum number in this array. If it does not e ...

  10. [SQL]LeetCode627. 交换工资 | Swap Salary

    SQL架构 create table ), sex ), salary int) Truncate table salary insert into salary (id, name, sex, sa ...