Created
April 14, 2015 08:26
-
-
Save developerworks/4704151d19c9d6b04fc1 to your computer and use it in GitHub Desktop.
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
/** | |
* http://blog.nodejitsu.com/npmawesome-9-gulp-plugins/ | |
* http://code.tutsplus.com/tutorials/managing-your-build-tasks-with-gulpjs--net-36910 | |
* http://www.smashingmagazine.com/2014/06/11/building-with-gulp/ | |
* http://blog.jobbole.com/80338/ | |
* | |
* @type {exports} | |
*/ | |
var path = require('path'); | |
var gulp = require('gulp'); | |
var gutil = require('gulp-util'); | |
var uglify = require('gulp-uglify'); | |
var rename = require('gulp-rename'); | |
var filesize = require('gulp-filesize'); | |
var less = require('gulp-less'); | |
var changed = require('gulp-changed'); | |
var livereload = require('gulp-livereload'); | |
var watch = require('gulp-watch'); | |
var gulpLoadPlugins = require('gulp-load-plugins'); | |
//var browserSync = require('browser-sync'); | |
var platformOverrides = require('gulp-platform-overrides'); | |
var sourcemaps = require('gulp-sourcemaps'); | |
var plumber = require('gulp-plumber'); | |
var moment = require('moment'); | |
var date = moment().format('YYYYMMDD'); | |
var plugins = gulpLoadPlugins(); | |
// 递归拷贝 | |
gulp.copy = function (src, dest) { | |
return gulp.src(src, {base: "."}).pipe(gulp.dest(dest)); | |
}; | |
// https://github.com/gulpjs/gulp/issues/284#issuecomment-35480973 | |
// 复制源文件到多个目标 | |
gulp.task('copy', function () { | |
gulp.src('./package.json') | |
.pipe(gulp.dest('_builds/public')) | |
.pipe(gulp.dest('public')) | |
.pipe(gulp.dest('_releases')); | |
gulp.copy('./public/**/*', '._builds/'); | |
}); | |
//var minifyCSS = require('gulp-minify-css'); | |
//gulp.task('minify-css', function () { | |
// gulp.src('./static/css/*.css') | |
// .pipe(minifyCSS({keepBreaks: true})) | |
// .pipe(gulp.dest('./dist/')) | |
//}); | |
var clean = require('gulp-clean'); | |
gulp.task('clean', function () { | |
return gulp.src('app/tmp', {read: false}) | |
.pipe(clean()); | |
}); | |
// 合并javascript文件 | |
var concat = require('gulp-concat'); | |
gulp.task('concat', function () { | |
return gulp.src([ | |
'./bower_components/jquery/dist/jquery.min.js', | |
'./bower_components/angular/angular.min.js', | |
'./bower_components/semantic-ui/dist/semantic.min.js', | |
'./bower_components/bg-splitter/js/splitter.js' | |
]) | |
.pipe(concat('lib' + date + '.js'), {newLine: ';'}) | |
// .pipe(concat({ path: 'new.js', stat: { mode: 0666 }})) | |
// .pipe(uglify({ | |
// mangle: false, | |
// preserveComments: 'some' | |
// })) | |
.pipe(gulp.dest('./_builds/tmp/public/js/')); | |
}); | |
//gulp.task('copy', function () { | |
// | |
//}); | |
//gulp.task('uglify', function () { | |
//}); | |
//gulp.task('changed', function () { | |
//}); | |
// | |
//gulp.task('watch', function () { | |
//}); | |
//gulp.task('concat', function () { | |
//}); | |
//自动构建LESS | |
//gulp.task('less', function () { | |
// gulp.src('public/less/*.less') | |
// .pipe(watch()) | |
// .pipe(less()) | |
// .pipe(gulp.dest('css')) | |
// .pipe(livereload()); | |
//}); | |
// 浏览器同步 | |
//gulp.task('browser-sync', function () { | |
// var files = [ | |
// 'app/**/*.html', | |
// 'app/assets/css/**/*.css', | |
// 'app/assets/imgs/**/*.png', | |
// 'app/assets/js/**/*.js' | |
// ]; | |
// | |
// browserSync.init(files, { | |
// server: { | |
// baseDir: './app' | |
// } | |
// }); | |
//}); | |
// 开发同步, | |
//gulp.task('devsync', function () { | |
// gulp.src('public/**/*') | |
// .pipe(changed('.css', {hasChanged: changed.compareSha1Digest})) | |
// .pipe(gulp.dest('.css')); | |
// .pipe(livereload()); | |
//}); | |
gulp.task('watch1', function () { | |
// livereload.listen(); | |
var SRC = 'public/**/*'; | |
var DESC = '_builds/netbook/osx64/netbook.app/Contents/Resources/app.nw/'; | |
return gulp.src(SRC) | |
.pipe(gulp.dest(DESC)); | |
}); | |
// 在一个任务中使用多个源 | |
// https://github.com/gulpjs/gulp/blob/master/docs/recipes/using-multiple-sources-in-one-task.md | |
//var merge = require('merge-stream'); | |
//gulp.task('test', function () { | |
// var bootstrap = gulp.src('bootstrap/js/*.js') | |
// .pipe(gulp.dest('public/bootstrap')); | |
// var jquery = gulp.src('jquery.cookie/jquery.cookie.js') | |
// .pipe(gulp.dest('public/jquery')); | |
// return merge(bootstrap, jquery); | |
//}); | |
// 在两个目录, 或多个目录, 之间相互同步 | |
// https://github.com/nariyu/gulp-dir-sync | |
var dirSync = require('gulp-dir-sync'); | |
gulp.task('sync', function () { | |
dirSync('public', '_releases/osx64/netbook.app/Contents/Resources/app.nw'); | |
}); | |
// 给浏览器特有的CSS规则添加前缀比如-webkit, -mz等等. | |
var autoprefixer = require('gulp-autoprefixer'); | |
gulp.task('autoprefixer', function () { | |
return gulp.src('public/css/app.css') | |
.pipe(autoprefixer({ | |
browsers: ['last 2 versions'], | |
cascade: false | |
})) | |
.pipe(gulp.dest('dist')); | |
}); | |
// 默认任务 | |
gulp.task('default', ['copy']); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment