apollo_developers/bower_components/ngImgCrop/gulpfile.js
venbatechnologies@gmail.com 1809bcf9c9 fixed table for student details
2018-04-23 18:34:11 +05:30

178 lines
5.3 KiB
JavaScript
Executable File

'use strict';
var argv = require('minimist')(process.argv.slice(2)),
gulp = require('gulp'),
header = require('gulp-header'),
gutil = require('gulp-util'),
ngAnnotate = require('gulp-ng-annotate'),
compass = require('gulp-compass'),
refresh = require('gulp-livereload'),
prefix = require('gulp-autoprefixer'),
minifyCss = require('gulp-minify-css'),
uglify = require('gulp-uglify'),
clean = require('gulp-rimraf'),
concat = require('gulp-concat-util'),
express = require('express'),
express_lr = require('connect-livereload'),
tinylr = require('tiny-lr'),
opn = require('opn'),
jshint = require('gulp-jshint'),
jshintStylish= require('jshint-stylish'),
pkg = require('./package.json'),
lr,
refresh_lr;
var today = new Date();
// Configuration
var Config = {
port: 9000,
livereloadPort: 35728,
testPage: 'test/ng-img-crop.html',
cache: (typeof argv.cache !== 'undefined' ? !!argv.cache : true),
paths: {
source: {
root: 'source',
js: 'source/js',
scss: 'source/scss'
},
compileUnminified: {
root: 'compile/unminified',
js: 'compile/unminified',
css: 'compile/unminified'
},
compileMinified: {
root: 'compile/minified',
js: 'compile/minified',
css: 'compile/minified'
}
},
banners: {
unminified: '/*!\n' +
' * ' + pkg.prettyName + ' v' + pkg.version + '\n' +
' * ' + pkg.homepage + '\n' +
' *\n' +
' * Copyright (c) ' + (today.getFullYear()) + ' ' + pkg.author.name +'\n' +
' * License: ' + pkg.license + '\n' +
' *\n' +
' * Generated at ' + gutil.date(today, 'dddd, mmmm dS, yyyy, h:MM:ss TT') + '\n' +
' */',
minified: '/*! ' + pkg.prettyName + ' v' + pkg.version + ' License: ' + pkg.license + ' */'
}
};
// Tasks
// =====
// Compile Styles
gulp.task('styles', function(){
return gulp.src(Config.paths.source.scss + '/'+pkg.name+'.scss')
.pipe(compass({
sass: Config.paths.source.scss,
css: Config.paths.compileUnminified.css,
errLogToConsole: true
}))
.pipe(prefix('last 2 version', '> 5%', 'safari 5', 'ie 8', 'ie 7', 'opera 12.1', 'ios 6', 'android 4'))
.pipe(gulp.dest(Config.paths.compileUnminified.css));
});
// Compile Scripts
gulp.task('scripts', function(){
return gulp.src([
Config.paths.source.js + '/init.js',
Config.paths.source.js + '/classes/*.js',
Config.paths.source.js + '/ng-img-crop.js'
])
.pipe(concat(pkg.name+'.js', {
separator: '\n\n',
process: function(src) {
// Remove all 'use strict'; from the code and
// replaces all double blank lines with one
return src.replace(/\r\n/g, '\n')
.replace(/'use strict';\n+/g, '')
.replace(/\n\n\s*\n/g, '\n\n');
}
}))
.pipe(concat.header(Config.banners.unminified + '\n' +
'(function() {\n\'use strict\';\n\n'))
.pipe(concat.footer('\n}());'))
.pipe(gulp.dest(Config.paths.compileUnminified.js));
});
// Make a Distrib
gulp.task('dist:js:clean', function(){
return gulp.src([Config.paths.compileMinified.root + '/**/*.js'], { read: false })
.pipe(clean());
});
gulp.task('dist:css:clean', function(){
return gulp.src([Config.paths.compileMinified.root + '/**/*.css'], { read: false })
.pipe(clean());
});
gulp.task('dist:js', ['dist:js:clean', 'scripts'], function(){
return gulp.src(Config.paths.compileUnminified.js + '/**/*.js')
.pipe(ngAnnotate())
.pipe(uglify())
.pipe(header(Config.banners.minified))
.pipe(gulp.dest(Config.paths.compileMinified.js));
});
gulp.task('dist:css', ['dist:css:clean', 'styles'], function(){
return gulp.src(Config.paths.compileUnminified.css + '/**/*.css')
.pipe(minifyCss())
.pipe(gulp.dest(Config.paths.compileMinified.css));
});
// Server
gulp.task('server', function(){
express()
.use(express_lr())
.use(express.static('.'))
.listen(Config.port);
gutil.log('Server listening on port ' + Config.port);
});
// LiveReload
gulp.task('livereload', function(){
lr = tinylr();
lr.listen(Config.livereloadPort, function(err) {
if(err) {
gutil.log('Livereload error:', err);
}
});
refresh_lr=refresh(lr);
});
// Watches
gulp.task('watch', function(){
gulp.watch(Config.paths.source.scss + '/**/*.scss', ['styles']);
gulp.watch([Config.paths.source.js + '/**/*.js'], ['scripts']);
gulp.watch([
Config.paths.compileUnminified.css + '/**/*.css',
Config.paths.compileUnminified.js + '/**/*.js',
Config.testPage
], function(evt){
refresh_lr.changed(evt.path);
});
});
// User commands
// =============
// Code linter
gulp.task('lint', function() {
return gulp.src(Config.paths.source.js + '/**/*.js')
.pipe(jshint())
.pipe(jshint.reporter(jshintStylish));
});
// Build
gulp.task('build', ['dist:js', 'dist:css']);
// Start server and watch for changes
gulp.task('default', ['server', 'livereload', 'styles', 'scripts', 'watch'], function(){
// use the -o arg to open the test page in the browser
if(argv.o) {
opn('http://localhost:' + Config.port+'/'+Config.testPage);
}
});