gulp配置文件
来源:互联网 发布:数据库系统设计 编辑:程序博客网 时间:2024/06/07 17:15
package.json:
{ "name": "og-web20171010", "version": "1.0.0", "description": "20171010", "main": "gulpfile.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "tangcc", "license": "ISC", "devDependencies": { "browser-sync": "^2.18.13", "browsersync-ssi": "^0.2.4", "gulp": "^3.9.1", "gulp-autoprefixer": "^4.0.0", "gulp-clean": "^0.3.2", "gulp-clean-css": "^3.9.0", "gulp-compass": "^2.1.0", "gulp-concat": "^2.6.1", "gulp-copy": "^1.0.1", "gulp-filter": "^5.0.1", "gulp-minify": "^1.0.0", "gulp-plumber": "^1.1.0", "gulp-rev": "^8.0.0", "gulp-rev-collector": "^1.2.2", "gulp-run-sequence": "^0.3.2", "gulp-sass": "^3.1.0", "gulp-sourcemaps": "^2.6.1", "gulp-uglify": "^3.0.0", "gulp-zip": "^4.0.0" }}
gulpfile.js:
//使用严格模式的js。保证js的严谨,作为一个好习惯。'use strict';var appDir = './app';//源码目录//var destDir = 'D:\\og_web-html\\src\\main\\webapp';//编译后目录var destDir = "D:\\oghtml";//编译后目录//var destDir = './dist';//编译后目录var gulp = require("gulp"),sourcemaps = require('gulp-sourcemaps');//映射文件//多浏览器多设备同步&自动刷新var browserSync = require("browser-sync").create(), SSI = require('browsersync-ssi'), filter = require('gulp-filter'), //用来编译sass sass = require('gulp-sass'), cssAutoprefixer = require('gulp-autoprefixer'), cleanCSS = require('gulp-clean-css'),//压缩css rev = require("gulp-rev"), revCollector=require('gulp-rev-collector'), // 需要ruby 不用了 compass = require('gulp-compass'), //合并文件 concat = require('gulp-concat'), //混淆js压缩 uglify = require('gulp-uglify'), //压缩js minify = require('gulp-minify'), //错误处理插件plumber plumber = require('gulp-plumber'), //clean 用来删除文件 clean = require('gulp-clean'), //压缩文件 zip = require('gulp-zip'), filesCopy = require("gulp-copy"), //可以把固定的文件复制到目标文件夹中去 runSequence = require('gulp-run-sequence');////////////////////////////////////////////////// server ///////////////////////////////////////////////////////////////////////创建一个名为serve的任务,该任务的内容就是匿名函数中的内容。gulp.task('serve', function() { browserSync.init({ //files:['**'], //port:8080, // 指定访问服务器的端口号 server: { baseDir:destDir // middleware:SSI({ // baseDir:destDir,// 设置静态服务器的根目录 // ext:'.shtml', // version:'1.0', // //index:'index.html' // 指定默认打开的文件 // }) } }); //监听各个目录的文件,如果有变动则执行相应的任务操作文件 gulp.watch("app/sass/**/*.scss", ['sass']); gulp.watch("app/js/**/*.js", ['js']); gulp.watch("app/css/**/*.css", ['css']); gulp.watch("app/lib/**/**.**", ['lib']); gulp.watch("app/iframe/**/*.html", ['iframe']); gulp.watch("app/img/**.**", ['img']); gulp.watch("app/html/**/*.html", ['html']); gulp.watch("app/index.html", ['index']); //如果有任何文件变动,自动刷新浏览器 gulp.watch("app/**/*.html").on("change",browserSync.reload);});//监听各个目录的文件,如果有变动则执行相应的任务操作文件gulp.watch("app/sass/**/*.scss", ['sass']);gulp.watch("app/js/**/*.js", ['js']);gulp.watch("app/css/**/*.css", ['css']);gulp.watch("app/iframe/**/*.html", ['iframe']);gulp.watch("app/img/**.**", ['img']);gulp.watch("app/html/**/*.html", ['html']);gulp.watch("app/index.html", ['index']);gulp.watch("app/lib/**/**.**", ['lib']);//如果有任何文件变动,自动刷新浏览器gulp.watch("app/**/*.html").on("change",browserSync.reload);// 代理的形式 proxy// gulp.task('serve', function() {// //使用browserSync创建服务器,自动打开浏览器并打开./dist文件夹中的文件(默认为index.html)// browserSync.init({// proxy: "127.0.0.1:8080"// });// //监听各个目录的文件,如果有变动则执行相应的任务操作文件// gulp.watch("app/sass/**/*.scss", ['sass']);// gulp.watch("app/js/**/*.js", ['js']);// gulp.watch("app/css/**/*.css", ['css']);// gulp.watch("app/iframe/**/*.html", ['iframe']);// gulp.watch("app/img/**.**", ['img']);// gulp.watch("app/html/**/*.html", ['html']);// gulp.watch("app/index.html", ['index']);// gulp.watch("app/lib/**/**.**", ['lib']);// //如果有任何文件变动,自动刷新浏览器// gulp.watch("app/**/*.html").on("change",browserSync.reload);// });//下面来分别看看处理各个部分的任务://compass任务,将scss编译为cssgulp.task('sass', function() { //首先取得app/sass下的所有后缀为.scss的文件(**/的意思是包含所有子文件夹) return gulp.src('app/sass/**/*.scss') .pipe(sass({ //设置生成sourcemap,在调试器中显示样式在scss文件中的位置,便于调试 sourcemap: 'true', //输出格式设置为compressed就不需要压缩css了 style: 'compressed', //文件目录 css: 'app/css', sass: 'app/sass', image: 'app/img' })) //如果有错误输出错误提示 .on('error', function(error) { // Would like to catch the error here console.log(error); this.emit('end'); }) .pipe(gulp.dest('app/css')) //自动刷新浏览器 .pipe(browserSync.stream());});//cssgulp.task('css', function() { return gulp.src(["app/css/**/*.css"]) .pipe(plumber()) .pipe(gulp.dest(destDir+"/css")) .pipe(browserSync.stream());});//js任务,将js压缩后放入dist。该任务要在clean-scripts任务完成后再执行gulp.task('js', function(){ //首先取得app/javascript下的所有后缀为.js的文件(**/的意思是包含所有子文件夹) return gulp.src('app/js/**/*.js') //错误管理模块 .pipe(plumber()) //.pipe(uglify()) //js压缩 //.pipe(minify()) .pipe(gulp.dest(destDir+"/js")) //自动刷新浏览器 .pipe(browserSync.stream());});//html任务gulp.task('html', function() { return gulp.src(["app/html/**/*.html"]) .pipe(plumber()) .pipe(gulp.dest(destDir + "/html")) .pipe(browserSync.stream());});//index.html任务gulp.task('index', function() { return gulp.src(["app/index.html"]) .pipe(plumber()) .pipe(gulp.dest(destDir + "/")) .pipe(browserSync.stream());});//copy iframe任务gulp.task('iframe', function() { return gulp.src("app/iframe/**/*.html") .pipe(plumber()) .pipe(gulp.dest(destDir + "/iframe")) .pipe(browserSync.stream());});//copy imggulp.task('img', function() { return gulp.src("app/img/**/*.*") .pipe(plumber()) .pipe(gulp.dest(destDir + "/img")) .pipe(browserSync.stream());});//copy libgulp.task('lib', function() { return gulp.src("app/lib/**/*.*") .pipe(plumber()) .pipe(gulp.dest(destDir+"/lib")) .pipe(browserSync.stream());});//clean任务:清空dist文件夹,下边重建dist的时候使用gulp.task('clean', function () { return gulp.src( [destDir + '/*','!WEB-INF/**/*.*'] ,{read: false}) .pipe(clean({force: true}));});//redist任务:需要时手动执行,重建dist文件夹:首先清空,然后重新处理所有文件gulp.task('redist',function(){ //先运行clean,然后并行运行html,js,compass runSequence('clean',['html','js','iframe','img','lib','index','css']);});//建立一个名为default的默认任务。当你在gitbash中执行gulp命令的时候,就会gulp.task('default', function(){ //先运行redist,再启动服务器 runSequence('redist','serve');});////////////////////////////////////////////////// publish ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// publish /////////////////////////////////////////////////////////////////////创建一个名为publish serve的任务,该任务的内容就是匿名函数中的内容。gulp.task('serve-release', function() { //使用browserSync创建服务器,自动打开浏览器并打开./dist文件夹中的文件(默认为index.html) browserSync.init({ //files:['**'], //port:"8080", // 指定访问服务器的端口号 server: { baseDir:destDir // middleware:SSI({ // baseDir:destDir,// 设置静态服务器的根目录 // ext:'.shtml', // version:'1.0', // //index:'index.html' // 指定默认打开的文件 // }) } }); //监听各个目录的文件,如果有变动则执行相应的任务操作文件 gulp.watch("app/sass/**/*.scss", ['sass-release']); gulp.watch("app/lib/**/**.**", ['lib-release']); gulp.watch("app/css/**/*.css", ['css-release']); gulp.watch("app/js/**/*.js", ['js-release']); gulp.watch("app/img/**.**", ['img-release']); gulp.watch("app/html/**/*.html", ['html-collector-release']); gulp.watch("app/iframe/**/*.html", ['iframe-collector-release']); gulp.watch("app/index.html", ['index-collector-release']); //如果有任何文件变动,自动刷新浏览器 gulp.watch("app/**/*.html").on("change",browserSync.reload);});// 代理的形式 proxy// gulp.task('serve', function() {// //使用browserSync创建服务器,自动打开浏览器并打开./dist文件夹中的文件(默认为index.html)// browserSync.init({// proxy: "127.0.0.1:8080"// });// //监听各个目录的文件,如果有变动则执行相应的任务操作文件 //各种watch略// });//下面来分别看看处理各个部分的任务://compass任务,将scss编译为cssgulp.task('sass-release', function() { //首先取得app/sass下的所有后缀为.scss的文件(**/的意思是包含所有子文件夹) return gulp.src('app/sass/**/*.scss') .pipe(sass({ //设置生成sourcemap,在调试器中显示样式在scss文件中的位置,便于调试 sourcemap: 'true', //输出格式设置为compressed就不需要压缩css了 style: 'compressed', //文件目录 css: 'app/css', sass: 'app/sass', image: 'app/img' })) //如果有错误输出错误提示 .on('error', function(error) { // Would like to catch the error here console.log(error); this.emit('end'); }) .pipe(gulp.dest('app/css')) //自动刷新浏览器 .pipe(browserSync.stream());});//css-releasegulp.task('css-release', function() { return gulp.src(["app/css/**/*.css"]) .pipe(plumber()) .pipe(cssAutoprefixer()) .pipe(cleanCSS()) .pipe(rev()) .pipe(gulp.dest(destDir + "/css")) .pipe(rev.manifest()) .pipe(gulp.dest(appDir + '/revCssJson'));});//jsRev-release任务,将jsRev-release压缩后放入dist。该任务要在clean-scripts任务完成后再执行gulp.task('js-release', function(){ //首先取得app/javascript下的所有后缀为.js的文件(**/的意思是包含所有子文件夹) return gulp.src(['app/js/**/*.js']) //错误管理模块 .pipe(plumber()) .pipe(uglify()) //js压缩 .pipe(minify()) .pipe(rev()) .pipe(gulp.dest(destDir+"/js")) .pipe(rev.manifest()) .pipe(gulp.dest(appDir + '/jsRevJson'));});gulp.task('img-release',function(){ gulp.src([appDir + '/img/*']) .pipe(plumber()) .pipe(rev()) .pipe(gulp.dest(destDir + '/img')) .pipe(rev.manifest()) .pipe(gulp.dest(appDir + '/imgRevJson'));});gulp.task('html-collector-release',function(){ gulp.src([appDir + '/jsRevJson/*',appDir + '/revCssJson/*',appDir + '/imgRevJson/*',appDir+'/html/**/*.html']) .pipe(revCollector()) .pipe(gulp.dest(destDir + '/html'));})gulp.task('iframe-collector-release',function(){ gulp.src([appDir + '/jsRevJson/*',appDir + '/revCssJson/*',appDir + '/imgRevJson/*',appDir+'/iframe/**/*.html']) .pipe(revCollector()) .pipe(gulp.dest(destDir + '/iframe'));})gulp.task('index-collector-release',function(){ gulp.src([appDir + '/jsRevJson/*',appDir + '/revCssJson/*',appDir + '/imgRevJson/*',appDir + '/index.html']) .pipe(revCollector()) .pipe(gulp.dest(destDir + '/'));})//copy libgulp.task('lib-release', function() { return gulp.src("app/lib/**/*.*") .pipe(plumber()) .pipe(gulp.dest(destDir+"/lib")) .pipe(browserSync.stream());});//clean任务:清空dist文件夹,下边重建dist的时候使用gulp.task('clean-release', function () { return gulp.src( [destDir + '/*','!WEB-INF/**/*.*'] ,{read: false}) .pipe(clean({force: true}));});//redist任务:需要时手动执行,重建dist文件夹:首先清空,然后重新处理所有文件gulp.task('redist-release',function(){ //先运行clean,然后并行运行html,js,compass runSequence('clean-release',['sass-release','lib-release','css-release','js-release','img-release','html-collector-release','iframe-collector-release','index-collector-release']);});//建立一个名为default的默认任务。当你在gitbash中执行gulp命令的时候,就会gulp.task('default-release', function(){ //先运行redist,再启动服务器 runSequence('redist-release','serve-release');});
阅读全文
1 0
- gulp配置文件
- gulp配置文件
- 一个gulp配置文件
- gulp配置文件gulpfile.js
- 一份gulp的配置文件
- #学习笔记#gulp配置文件入门
- 官网常用 gulp配置文件
- gulp前端自动化构建工具(三):gulp工具配置文件
- gulp-写一份gulp常用配置文件,构建前端工作流
- 自动化构建工具Gulp配置文件gulpfile.js
- Gulp的配置文件gulpfile.babel.js
- gulp入门(19)- 使用外部配置文件
- gulp
- Gulp
- gulp
- Gulp
- gulp
- gulp
- vue-router相同的地址,如何刷新数据
- Part itemtype解读(2): RelationshipType
- Android下使用Protobuf进行序列化
- 《Apache Flume教程》第四章 Flume数据库数据流
- Quartz入门
- gulp配置文件
- 细说mysql索引
- 观察者模式和委托
- TensorFlow: How to freeze a model and serve it with a python API
- 安卓开发中,onSaveInstanceState和onRestoreInstanceState,调用时机分析
- java 导入csv , 里面 有“”回车换行等,都可以去掉
- webstorm中.vue格式文件中代码高亮显示
- 注释转换
- Apache优化(一)