Created
October 2, 2014 16:42
-
-
Save JingwenTian/52761b6be5daec7b7c6b to your computer and use it in GitHub Desktop.
这是一个完整的例子,已经运用在我项目中:http://www.tuicool.com/articles/MFruuuq
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var gulp = require('gulp'); | |
// 引入组件 | |
var less = require('gulp-less'), // less | |
minifycss = require('gulp-minify-css'), // CSS压缩 | |
uglify = require('gulp-uglify'), // js压缩 | |
concat = require('gulp-concat'), // 合并文件 | |
rename = require('gulp-rename'), // 重命名 | |
clean = require('gulp-clean'); //清空文件夹 | |
// less解析 | |
gulp.task('build-less', function(){ | |
gulp.src('./javis/static/less/lib/s-production.less') | |
.pipe(less()) | |
.pipe(gulp.dest('./javis/static/build/css/lib/')) | |
gulp.src('./javis/static/less/lib/s-skins.less') | |
.pipe(less()) | |
.pipe(gulp.dest('./javis/static/build/css/lib/')) | |
gulp.src('./javis/static/less/lib/s/s.less') | |
.pipe(less()) | |
.pipe(gulp.dest('./javis/static/build/css/lib/')) | |
gulp.src('./javis/static/less/*.less') | |
.pipe(less()) | |
.pipe(gulp.dest('./javis/static/build/css/')) | |
}); | |
// 合并、压缩、重命名css | |
gulp.task('stylesheets',['build-less'], function() { | |
// 注意这里通过数组的方式写入两个地址,仔细看第一个地址是css目录下的全部css文件,第二个地址是css目录下的areaMap.css文件,但是它前面加了!,这个和.gitignore的写法类似,就是排除掉这个文件. | |
gulp.src(['./javis/static/build/css/*.css','!./javis/static/build/css/areaMap.css']) | |
.pipe(concat('all.css')) | |
.pipe(gulp.dest('./javis/static/build/css/')) | |
.pipe(rename({ suffix: '.min' })) | |
.pipe(minifycss()) | |
.pipe(gulp.dest('./javis/static/build/css')); | |
}); | |
// 合并,压缩js文件 | |
gulp.task('javascripts', function() { | |
gulp.src('./javis/static/js/*.js') | |
.pipe(concat('all.js')) | |
.pipe(gulp.dest('./javis/static/build/js')) | |
.pipe(rename({ suffix: '.min' })) | |
.pipe(uglify()) | |
.pipe(gulp.dest('./javis/static/build/js')); | |
}); | |
// 清空图片、样式、js | |
gulp.task('clean', function() { | |
return gulp.src(['./javis/static/build/css/all.css','./javis/static/build/css/all.min.css'], {read: false}) | |
.pipe(clean({force: true})); | |
}); | |
// 将bower的库文件对应到指定位置 | |
gulp.task('buildlib',function(){ | |
gulp.src('./bower_components/angular/angular.min.js') | |
.pipe(gulp.dest('./javis/static/build/js/')) | |
gulp.src('./bower_components/angular/angular.js') | |
.pipe(gulp.dest('./javis/static/build/js/')) | |
gulp.src('./bower_components/bootstrap/dist/js/bootstrap.min.js') | |
.pipe(gulp.dest('./javis/static/build/js/')) | |
gulp.src('./bower_components/jquery/dist/jquery.min.js') | |
.pipe(gulp.dest('./javis/static/build/js/')) | |
gulp.src('./bower_components/angular-route/angular-route.min.js') | |
.pipe(gulp.dest('./javis/static/build/js/')) | |
gulp.src('./bower_components/angular-animate/angular-animate.min.js') | |
.pipe(gulp.dest('./javis/static/build/js/')) | |
gulp.src('./bower_components/angular-bootstrap/ui-bootstrap.min.js') | |
.pipe(gulp.dest('./javis/static/build/js/')) | |
gulp.src('./bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js') | |
.pipe(gulp.dest('./javis/static/build/js/')) | |
//--------------------------css------------------------------------- | |
gulp.src('./javis/static/less/fonts/*') | |
.pipe(gulp.dest('./javis/static/build/css/fonts/')) | |
gulp.src('./bower_components/bootstrap/fonts/*') | |
.pipe(gulp.dest('./javis/static/build/css/fonts/')) | |
gulp.src('./bower_components/bootstrap/dist/css/bootstrap.min.css') | |
.pipe(gulp.dest('./javis/static/build/css/lib')) | |
}); | |
// 定义develop任务在日常开发中使用 | |
gulp.task('develop',function(){ | |
gulp.run('buildlib','build-less','javascripts','stylesheets'); | |
gulp.watch('./javis/static/less/*.less', ['build-less']); | |
}); | |
// 定义一个prod任务作为发布或者运行时使用 | |
gulp.task('prod',function(){ | |
gulp.run('buildlib','build-less','stylesheets','javascripts'); | |
// 监听.less文件,一旦有变化,立刻调用build-less任务执行 | |
gulp.watch('./javis/static/less/*.less', ['build-less']); | |
}); | |
// gulp命令默认启动的就是default认为,这里将clean任务作为依赖,也就是先执行一次clean任务,流程再继续. | |
gulp.task('default',['clean'], function() { | |
gulp.run('develop'); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment