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是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优 ...
随机推荐
- Layui下拉框改变时触发事件
layui.use(['form', 'layer'], function () { var form = layui.form(); var layer = layui.layer; form.on ...
- SpringBoot报错:Table 'database_name.hibernate_sequence' doesn't exist
引起条件: SpringBoot+JPA插入包含自增字段的对象 @Id @GeneratedValue private Integer id; 解决方法: 给注解添加属性 @Id @Generated ...
- ARouter基础使用(一)
一个用于帮助 Android App 进行组件化改造的框架 —— 支持模块间的路由.通信.解耦1.新建一个Android项目 "ARouterDemo"2.添加依赖和配置 andr ...
- Mac自动化环境
1. JDK安装 下载JDK for Mac 我这里使用的是 jdk-7u79-macosx-x64.dmg 验证安装open Terminal java -version java versio ...
- sql 随机获取数据
SQL Server: SELECT TOP 10 * FROM T_USER ORDER BY NEWID() ORACLE: SELECT * FROM (SELECT * FROM T_USER ...
- C++之几个最常
1.同类对象间的数据共享——静态成员 静态数据成员声明静态数据成员要采用关键字static:类静态数据成员的定义和初始化定义:static 数据类型 成员名:初始化:数据类型 类名::静态数据成员名= ...
- IOS菜鸟学习
1.NS是系统库.2.IOS类的声明:@interface MyObject : NSObject { int memberVar1; // 实体变量 id memberVar2;} + ...
- 熟悉HBase基本操作
1. ssh localhost start-dfs.sh start-hbase.sh hbase shell create 'Student', 'S_No', 'S_Name', 'S_Sex' ...
- 【转载】看StackOverflow如何用25台服务器撑起5.6亿的月PV
问答社区网络 StackExchange 由 100 多个网站构成,其中包括了 Alexa 排名第 54 的 StackOverflow.StackExchang 有 400 万用户,每月 5.6 亿 ...
- .NET Core跨平台的奥秘[中篇]:复用之殇
在<.NET Core跨平台的奥秘[上篇]:历史的枷锁>中我们谈到:由于.NET是建立在CLI这一标准的规范之上,所以它天生就具有了"跨平台"的基因.在微软发布了第一个 ...