var gulp = require('gulp'); var gutil = require('gulp-util'); var bower = require('bower'); var concat = require('gulp-concat'); var sass = require('gulp-sass'); var minifyCss = require('gulp-minify-css'); var rename = require('gulp-rename'); var sh = require('shelljs'); var uglify = require("gulp-uglify"); var stripDebug = require('gulp-strip-debug'); var ngAnnotate = require('gulp-ng-annotate'); var paths = { sass: ['./scss/**/*.scss'], starter: ['./www/js/start/config.js','./www/js/start/controller.js','./www/js/start/directive.js','./www/js/start/factory.js','./www/js/start/filter.js'] }; gulp.task('default', ['sass', 'starter']); gulp.task('starter', function () { gulp.src(paths.starter) .pipe(concat('starter.js')) .pipe(gulp.dest('./www/js')) .pipe(ngAnnotate()) .pipe(stripDebug()) .pipe(uglify()) .pipe(rename({extname: '.min.js'})) .pipe(gulp.dest('./www/js/')); }); gulp.task('sass', function (done) { gulp.src(['./scss/ionic.app.scss', './scss/linker.scss']) .pipe(sass()) .on('error', sass.logError) .pipe(gulp.dest('./www/css/')) .pipe(minifyCss({ keepSpecialComments: 0 })) .pipe(rename({extname: '.min.css'})) .pipe(gulp.dest('./www/css/')) .on('end', done); }); gulp.task('watch', function () { gulp.watch(paths.sass, ['sass']); gulp.watch(paths.starter, ['starter']); }); gulp.task('install', ['git-check'], function () { return bower.commands.install() .on('log', function (data) { gutil.log('bower', gutil.colors.cyan(data.id), data.message); }); }); gulp.task('git-check', function (done) { if (!sh.which('git')) { console.log( ' ' + gutil.colors.red('Git is not installed.'), '\n Git, the version control system, is required to download Ionic.', '\n Download git here:', gutil.colors.cyan('http://git-scm.com/downloads') + '.', '\n Once git is installed, run \'' + gutil.colors.cyan('gulp install') + '\' again.' ); process.exit(1); } done(); });