欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

gulp 配置实例

程序员文章站 2022-06-07 13:20:51
...
/*	
	src 指来源
	pipe 指管道
	dest 指目标
*/
var gulp = require("gulp");
var babel = require("gulp-babel");//转es5 
var es2015 = require("babel-preset-es2015");//转es5 
var webpack = require("gulp-webpack");//模块化开发
var del = require('del');//删除文件

//模块化开发
gulp.task("js",function(){
	function compile(data,to){
	//data:开发环境的文件路径  to:生产环境的下的文件路径
		gulp.src(data.map(v=>"src/js/"+v))
			.pipe(babel({presets:[es2015]}))//转es5 
			.pipe(gulp.dest("dist/js/"))//es5 保存路径
			.pipe(webpack({output:{filename:to}}))//模块化合并
			.pipe(gulp.dest("dist/js/"))
			.on("end",function(){del(data.map(v=>"dist/js/"+v))});//删除临时文件
	}
	compile(['1.js','2.js'], 'build.js');
//	compile(['3.js','4.js'], 'drog.js');
});
//			.pipe(uglify())//压缩js代码


//js文件合并  并非模块化合并
var concat = require('gulp-concat'); // 合并
var uglify = require('gulp-uglify'); // js压缩

gulp.task("merge",function(){
	gulp.src(["src/js/3.js", "src/js/4.js"])
		.pipe( babel({presets:[es2015]}) ) //转码
		.pipe( concat("drog.js") ) //合并
		.pipe( uglify() )  //压缩
		.pipe( gulp.dest("dist/js") ) // 创建文件
});


// 编译scss
var sass = require('gulp-sass');//编译scss
var minifyCSS = require('gulp-minify-css'); //压 缩 CSS

gulp.task("css", function(){
	gulp.src(["src/css/index.scss","src/css/index.css"])
		.pipe(concat("index.min.css"))//合并
		.pipe(sass())//编译
		.pipe(minifyCSS())
		.pipe(gulp.dest("dist/css"))
});


//操作html
var htmlreplace = require('gulp-html-replace'); //html中替换
var minifyHTML = require("gulp-minify-html"); //压缩html

gulp.task("html",function(){
	gulp.src("src/html/index.html")
		.pipe(htmlreplace({
			"css" : "../css/index.min.css",
			"js" : "../js/drog.js"
		}))
		.pipe( minifyHTML({quotes:true}) )//不带参数会去掉引号
		.pipe( gulp.dest("dist/html/") )
});


// 监听:如果 件被修改,则执 相应任务
gulp.task("auto",function(){
	gulp.watch("src/html/*.html", ["html"]);
	gulp.watch(["src/css/*.css","src/css/*.scss"], ["css"]);
	gulp.watch(["src/js/3.js","src/js/4.js"], ["js"]);
})

/*
//服务器
var connect = require('gulp-connect');
gulp.task('myServer', function() {
	connect.server({
		root : 'dist',
		port: 8000,
   		livereload: true
	});
})
//livereload表示当文件被更改时是否自动刷新,有兼容问题。
*/


// 压缩图片
var imagemin = require('gulp-imagemin');

gulp.task("img",function(){
	gulp.src("src/image/*.{png,jpg,gif,ico}")
		.pipe( imagemin({
			optimizationLevel:5,//类型:Number 默认:3  取值范围:0-7
			progressive: true, //默认:false 无损压缩jpg图片
	        interlaced: true, //默认:false 隔行扫描gif进行渲染
	        multipass: true //默认:false 多次优化svg直到完全优化
	  	}))
		.pipe( gulp.dest("dist/image"))
});



/*
gulp.task("js",function(){
	gulp.src(["src/js/1.js","src/js/2.js"])
		.pipe(babel({presets:[es2015]})) //转es5 
		.pipe(gulp.dest("dist/js/")) //es5 保存路径
		.pipe(webpack({
			output:{
				filename:"build.js" //捆绑成什么文件?
			}
		}))
		.pipe(gulp.dest("dist/js/")) //build.js放到那个位置
		.on("end",function(){
			gulp.run("del");
		});
})
gulp.task("del",function(){
	del(["dist/js/1.js","dist/js/2.js"]); // 删除文件
})
*/
相关标签: gulp

上一篇: gulp

下一篇: 浅析Java 8新功能Optional