Skip to content

Instantly share code, notes, and snippets.

@developerworks
Created April 14, 2015 08:26
Show Gist options
  • Save developerworks/4704151d19c9d6b04fc1 to your computer and use it in GitHub Desktop.
Save developerworks/4704151d19c9d6b04fc1 to your computer and use it in GitHub Desktop.
/**
* 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