var gulp = require('gulp'),
autoprefixer = require('gulp-autoprefixer'), //自动添加css前缀
rename = require('gulp-rename'), //文件重命名
sass = require('gulp-sass'), //sass的编译
minifycss = require('gulp-minify-css'), //压缩css
uglify = require('gulp-uglify'), //压缩js代码
concat = require('gulp-concat'), //合并js文件
rev = require('gulp-rev'), //更改版本名
revCollector = require('gulp-rev-collector'), //rev的插件,用于更改html模版中lib的引用
del = require('del'), //清除文件
livereload = require('gulp-livereload'),
// babel = require('gulp-babel'),//清除文件
jade = require('gulp-jade'), //jade
htmlmin = require("gulp-htmlmin"), //html
connect = require('gulp-connect'), //使用connect启动一个Web服务器
js_pach = ['app/static/**.js', 'app/static/**/**.js', 'app/template/**.js', 'app/template/**/**.js', 'app/template/**/**.js'],
//var css_pach = ['css/ionic_main.css','css/huodong.css','css/gouwuche.css','css/chenggong.css'];
scss_pach = ['app/**/**.scss', 'app/**/**/**.scss', 'app/**/**/**/**.scss', 'app/**/**/**/**/**.scss'],
jade_path = ['app/template/**.jade', 'app/template/**/**.jade', 'app/template/**/**/**.jade', 'app/template/**/**/**/**.jade'],
jade2_path = ['app/static/**.jade', 'app/static/**/**.jade', 'app/static/**/**/**.jade'],
html_path = ['app/template/**.html', 'app/template/**/**.html', 'app/template/**/**/**.html', 'app/template/**/**/**/**.html'],
all_path = js_pach.concat(scss_pach).concat(jade_path).concat(jade2_path).concat(html_path);
gulp.task('connect', function () {
connect.server({
root: '',
livereload: true,
port: 8080 //服务器端口
});
});
// gulp.task('babel', function () {
// return gulp.src(js_pach)
// .pipe(babel({
// compact:false
// }))
// .pipe(concat('debug2.js'))
// .pipe(gulp.dest('js'));
// }); gulp.task('jade', function () {
return gulp.src(jade_path)
.pipe(jade()).on('error', function () {
console.log("eroror")
})
.pipe(gulp.dest('app/dist/templates')).pipe(connect.reload());
})
gulp.task('jade2', function () {
return gulp.src(jade2_path)
.pipe(jade()).on('error', function () {
console.log("eroror")
})
.pipe(gulp.dest('app/dist')).pipe(connect.reload());
}); gulp.task('html', function () {
return gulp.src(html_path)
.pipe(htmlmin({collapseWhitespace: true,minifyCSS:true,minifyJS:true,removeComments:true,removeEmptyAttributes:true}))
.pipe(gulp.dest('app/dist/templates')).pipe(connect.reload());
}) gulp.task('js', ['cleanjs'], function () { return gulp.src(js_pach)
.pipe(concat('debug.js'))
.pipe(gulp.dest('app/dist/js'))
.pipe(concat('main.js'))
.pipe(uglify())
.pipe(rev())
.pipe(gulp.dest('app/dist/js'))
.pipe(rev.manifest())
.pipe(gulp.dest('app/dist/js'))
}); gulp.task('cleanjs', function (cb) {
return del(['app/dist/js/main-**.js'], cb)
});
gulp.task('cleancss', function (cb) {
return del(['app/dist/css/main-**.css'], cb)
}); gulp.task('jsrev', ['js'], function () {
return gulp.src(['app/dist/js/**.json', 'index.html'])
.pipe(revCollector({
replaceReved: true
}))
.pipe(gulp.dest('')).pipe(connect.reload())
}); gulp.task('sassrev', ['sass'], function () {
return gulp.src(['app/dist/css/**.json', 'index.html'])
.pipe(revCollector({
replaceReved: true
}))
.pipe(gulp.dest('')).pipe(connect.reload())
}); gulp.task('sass', ['cleancss'], function () {
return gulp.src(scss_pach)
.pipe(sass({
outputStyle: 'compressed'
}).on('error', sass.logError))
.pipe(concat('debug.css'))
.pipe(gulp.dest('app/dist/css'))
.pipe(concat('main.css'))
.pipe(rev())
.pipe(gulp.dest('app/dist/css'))
.pipe(rev.manifest())
.pipe(gulp.dest('app/dist/css'));
}); gulp.task('default', function () {
gulp.start('connect', 'watch');
}); //监视文件变化,自动生成到dist文件夹 gulp.task('watch', function () {
gulp.watch(js_pach, ['jsrev']);
gulp.watch(scss_pach, ['sassrev']);
gulp.watch(jade_path, ['jade']);
gulp.watch(jade2_path, ['jade2']);
gulp.watch(html_path, ['html']);
});

  

npm install --save 即可把所依赖的文件下载到本地

利用gulp搭建简单服务器,gulp标准版的更多相关文章

  1. 利用gulp搭建本地服务器,并能模拟ajax

    工作中可能会用到的小工具,在此记录一下.可以实现的功能有: 本地http服务器 页面实时刷新 可以模拟ajax请求 第一步,新建package.json文件.用到了gulp.gulp-webserve ...

  2. 利用Serv-U搭建FTP服务器

    以前在学校的时候,学校的整个宿舍楼都是在一个局域网中,经常有人用个人电脑搭个网站或者FTP啊什么的,主要是进行一些影视资源的传播活动.不乏 有些资源充沛的有志青年利用业余时间翻译某岛国影视资源,利用局 ...

  3. Node安装及搭建简单服务器

    注:本文安装系统为mac,windows及其他系统下载对应安装包 ,mac下载后的安装包为apk文件,windows为msi文件. 安装 1.在网上下载node安装包,官方网站2.双击下载文件,按步骤 ...

  4. CentOS利用postfix搭建邮件服务器

    之前我用nodemailer通过163邮箱来发送邮件,不过没过几天就一直ETIMEDOUT,不知道什么原因,想着还是自己搭一个来发邮件可能靠谱点(flag?) 安装postfix CentOS 7 自 ...

  5. 利用nginx搭建https服务器

    一.HTTPS简介 HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块.服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加 ...

  6. gulp 搭建静态服务器

    步骤: 安装依赖:npm i browser-sync --save-dev 导入browser-sync,通过create创建 设置Sass和Js任务,将其压缩重命名并引入页面,任务结束时reloa ...

  7. 利用docker搭建rtmp服务器(1)

    以后的项目里面可能需要用到直播,所以就先看看 本来想在自己MAC上搭建nginx的,后来怕把自己的机子搞乱,刚好就学习了下docker,感觉docker强大就在于是一个操作系统软件的版本管理系统,可以 ...

  8. 嵌入式Linux利用Wifi搭建无线服务器(物联网实践之无线网关)

    在 http://www.cnblogs.com/heat-man/p/4564539.html中,在嵌入式Linux开发板上我们从最底层实现了一个智能家居的远程控制系统,然而采取的是用网线连接到交换 ...

  9. [PHP]利用XAMPP搭建本地服务器, 然后利用iOS客户端上传数据到本地服务器中(三. PHP端代码实现)

    一.安装XAMPP   http://www.cnblogs.com/lidongxu/p/5256330.html 二. 配置MySql http://www.cnblogs.com/lidongx ...

随机推荐

  1. Zkdash安装

    zkdash是一个zookeeper的管理界面,也可以作为任何基于zookeeper的配置管理工具,比如:Qconf 1.拉取代码 #git clone https://github.com/irea ...

  2. codeforces 372E. Drawing Circles is Fun

    tags:[圆の反演][乘法原理][尺取法]题解:圆の反演:将过O点的圆,映射成不过O的直线,相切的圆反演出来的直线平行.我们将集合S中的点做反演变换:(x,y)->(x/(x^2+y^2), ...

  3. 【webpack学习笔记(一)】流行的前端模块化工具webpack初探

    从开发文件到生产文件   有一天我突然意识到一个问题,在使用react框架搭建应用时,我使用到了sass/less,JSX模版以及ES6的语法在编辑器下进行开发,使用这些写法是可以提高开发的效率.可是 ...

  4. 手机自动化培训:Appium介绍

    手机自动化培训:Appium介绍 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:9088214 ...

  5. ASP.NET Core MVC和Visual Studio入门

    本教程将教你使用Visual Studio 2017创建 ASP.NET Core MVC web应用程序的基础知识. 安装Visual Studio 2017 和.Net Core 安装Visual ...

  6. 《c#入门经典第五版》简介及pdf电子书网盘下载地址(收藏)

    <C#入门经典(第5版)>全面讲解C# 2010和.net架构编程知识,为您编写卓越C# 2010程序奠定坚实基础.C#入门经典系列是屡获殊荣的C#名著和超级畅销书.最新版的<C#入 ...

  7. 初步了解关于js跨域问题

    js跨域问题是指在js在不同的域中进行数据传输或者数据通信,比如通过ajax向不同的域请求数据(说到ajax,不可避免的就会遇到两个问题:一是ajax是如何传递数据的?二是ajax是如何实现跨域的?) ...

  8. 自行扩展 FineUIMvc 通知对话框(多个并排显示不重叠,支持最新的显示在最上方)

    声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版. 这篇文章我们将改造 FineUIMvc 默认的通知对话框,使得同时显示多个也不会重叠.并提前出一个公共的JS文件,供大家使用. ...

  9. 【模板】二分图最大权完美匹配KM算法

    hdu2255模板题 KM是什么意思,详见百度百科. 总之知道它可以求二分图最大权完美匹配就可以了,时间复杂度为O(n^3). 给张图. 二分图有了边权,求最大匹配下的最大权值. 所以该怎么做呢?对啊 ...

  10. python在cmd上导包成功,但是python charm上面就提示找不到

    失败 成功 原因:我的python file名称和numpy 的名字一样了,把python file 的名字改了就好了