gulp基本设置
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基本设置的更多相关文章
- gulp入门与一些基本设置
这里是gulp入门的一些操作,实现了编译sass文件.压缩.合并.添加版本号等基本功能. 友情提示,如果npm出现无法下载可以安装 cnpm.在安装完Nodejs 后 npm install cnpm ...
- 前端自动化构建工具 Gulp 使用
一个月没写博客了,今天有时间,就写个gulp的入门使用吧.. 简介:gulp是一个前端自动化构建工具,可以实现代码的检查.压缩.合并……等等,gulp是基于Node.js的自动任务运行器 一.安装No ...
- Gulp思维——Gulp高级技巧
本文翻译自Getting gulpy -- Advanced tips for using gulp.js 感受过gulp.js带来的兴奋过后,你需要的不仅仅是它的光鲜,而是切切实实的实例.这篇文章讨 ...
- [转]Gulp思维 —— Gulp高级技巧
感受过gulp.js带来的兴奋过后,你需要的不仅仅是它的光鲜,而是切切实实的实例.这篇文章讨论了一些使用gulp.js时常踩的坑,以及一些更加高级和定制化的插件和流的使用技巧. 基本任务 gulp的基 ...
- 构建一个基本的前端自动化开发环境 —— 基于 Gulp 的前端集成解决方案(四)
通过前面几节的准备工作,对于 npm / node / gulp 应该已经有了基本的认识,本节主要介绍如何构建一个基本的前端自动化开发环境. 下面将逐步构建一个可以自动编译 sass 文件.压缩 ja ...
- 常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)
前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本 ...
- 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一)
相关连接导航 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二) 常用 Gulp 插件汇总 ...
- 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二)
前言 文章 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 中,已经完成对 gulp 的安装,由于是window环境,文中特意提到了可以通过安装 gitbash 来代替 ...
- gulp详细入门教程
本文链接:http://www.ydcss.com/archives/18 gulp详细入门教程 简介: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优 ...
随机推荐
- vue-cli+mock.js+axios模拟前后台数据交互
最近工作不是很忙,自己做了一个vue的移动端的小项目,涉及到后台数据的时候,网上查阅了一些资料,因为是自己写的项目没有后台只能自己模拟数据,刚开始就自己写了一些静态数据后来觉得尽量模拟真实的比较好些, ...
- LDAP & Implementation
LDAP & Implementation 一.什么是LDAP? (一)在介绍什么是LDAP之前,我们先来复习一个东西:“什么是目录服务?” 1. 目录服务是一个特殊的数据库,用来保存描述性的 ...
- RabbitMQ 官方demo1
public class RabbitMqSend { public static void Test() { var factory = new ConnectionFactory() { Host ...
- LeetCode 26 Remove Duplicates from Sorted Array [Array/std::distance/std::unique] <c++>
LeetCode 26 Remove Duplicates from Sorted Array [Array/std::distance/std::unique] <c++> 给出排序好的 ...
- CommonsChunkPlugin
CommonsChunk 插件的作用就是提取代码中的公共代码,然后将公共模块打包到一个独立的文件中,以便在其它的入口和模块中使用,原理就是把多个入口共同的依赖都给定义成一个新入口 多种打包情况: 单一 ...
- 获取用户在web页面上选中的文本
window.getSelection().toString();
- layui 表格在排序之后没有重新渲染问题
问题描述: 在layui表格中,最后一列增加了操作按钮,并且在某些行设置了样式,但是在排序之后,按钮的点击事件失效了,样式也没有了,可能是没有执行done回调 原因: done回调只有在render和 ...
- HelloPython
HELLOWORD!你好!Python! 学习Python已有一段时间,一个人自学颇不容易,在此分享一些自己学习经验和感受,温故而知新,也希望自己能有些新收获. 学习Python,大多数人创建的第一个 ...
- 下载 mysql 数据库 的步骤 完整版
1. 官网(点这里)上下载 2. 3. 4. 5. 6. 7.
- mysqldump 导出中文乱码
命令:mysqldump -uroot -p test > /data/test.sql 导出后的数据库打开是乱码,如下: 开始以为打开的方式不对,就用记事本打开后,用utf-8的编码格式另保存 ...