mirror of https://github.com/akveo/blur-admin
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
160 lines
6.1 KiB
160 lines
6.1 KiB
var gulp = require('gulp');
|
|
|
|
var sass = require('gulp-sass');
|
|
var autoprefix = require('gulp-autoprefixer');
|
|
var minifyCSS = require('gulp-minify-css');
|
|
var concat = require('gulp-concat');
|
|
var changed = require('gulp-changed');
|
|
var imagemin = require('gulp-imagemin');
|
|
var stripDebug = require('gulp-strip-debug');
|
|
var uglify = require('gulp-uglify');
|
|
var eventStream = require('event-stream');
|
|
var templateCache = require('gulp-angular-templatecache');
|
|
var minifyHTML = require('gulp-minify-html');
|
|
|
|
var bootstrapCssSrc = 'bower_components/bootstrap/dist/css/bootstrap.min.css';
|
|
|
|
gulp.task('minify-404-css', function () {
|
|
var vendorFiles = gulp.src(bootstrapCssSrc);
|
|
var appFiles = gulp.src('src/assets/css/404.scss').pipe(sass({ style: 'compressed' }).on('error', sass.logError));
|
|
|
|
return eventStream.concat(vendorFiles, appFiles)
|
|
.pipe(concat('404.min.css'))
|
|
.pipe(autoprefix('last 4 version'))
|
|
.pipe(minifyCSS())
|
|
.pipe(gulp.dest('release/css/'));
|
|
});
|
|
|
|
gulp.task('minify-auth-css', function () {
|
|
var vendorFiles = gulp.src(bootstrapCssSrc);
|
|
var appFiles = gulp.src('src/assets/css/auth.scss').pipe(sass({ style: 'compressed' }).on('error', sass.logError));
|
|
|
|
return eventStream.concat(vendorFiles, appFiles)
|
|
.pipe(concat('auth.min.css'))
|
|
.pipe(autoprefix('last 4 versions'))
|
|
.pipe(minifyCSS())
|
|
.pipe(gulp.dest('release/css/'))
|
|
});
|
|
|
|
gulp.task('minify-css', ['minify-404-css', 'minify-auth-css'], function () {
|
|
var vendorFiles = gulp.src([
|
|
bootstrapCssSrc,
|
|
'bower_components/bootstrap-select/dist/css/bootstrap-select.min.css',
|
|
'bower_components/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css',
|
|
'bower_components/bootstrap-tagsinput/dist/bootstrap-tagsinput.css',
|
|
'bower_components/Ionicons/css/ionicons.min.css',
|
|
'bower_components/font-awesome/css/font-awesome.min.css',
|
|
'bower_components/animate.css/animate.min.css'
|
|
]);
|
|
var appFiles = gulp.src('src/assets/css/main.scss').pipe(sass({ style: 'compressed' }).on('error', sass.logError));
|
|
|
|
return eventStream.concat(vendorFiles, appFiles)
|
|
.pipe(concat('index.min.css'))
|
|
.pipe(autoprefix('last 2 versions'))
|
|
.pipe(minifyCSS())
|
|
.pipe(gulp.dest('release/css/'))
|
|
});
|
|
|
|
var imgSrc = [
|
|
'src/assets/img/*',
|
|
'src/assets/pictures/*',
|
|
'src/app/pages/dashboard/widgets/timeline/img/*',
|
|
'src/app/pages/profile/img/*',
|
|
'src/app/pages/icons/widgets/kameleon-img/*',
|
|
'bower_components/amcharts/dist/amcharts/images/*',
|
|
'bower_components/ammap/dist/ammap/images/*',
|
|
'bower_components/leaflet/dist/images/*'
|
|
];
|
|
|
|
gulp.task('imagemin', function () {
|
|
var imgDst = 'release/img/';
|
|
return gulp
|
|
.src(imgSrc)
|
|
.pipe(changed(imgDst))
|
|
.pipe(imagemin())
|
|
.pipe(gulp.dest(imgDst));
|
|
});
|
|
|
|
gulp.task('js', function () {
|
|
var libSrc = [
|
|
'bower_components/jquery/dist/jquery.min.js',
|
|
'bower_components/angular/angular.min.js',
|
|
'src/assets/js/global-variables.js',
|
|
'bower_components/angular-route/angular-route.min.js',
|
|
'bower_components/jquery-ui/jquery-ui.min.js',
|
|
'bower_components/bootstrap/dist/js/bootstrap.min.js',
|
|
'bower_components/highlight/src/highlight.js',
|
|
'bower_components/bootstrap-switch/dist/js/bootstrap-switch.min.js',
|
|
'bower_components/bootstrap-select/dist/js/bootstrap-select.min.js',
|
|
'bower_components/bootstrap-tagsinput/dist/bootstrap-tagsinput.min.js',
|
|
'bower_components/moment/min/moment.min.js',
|
|
'bower_components/amcharts/dist/amcharts/amcharts.js',
|
|
'bower_components/amcharts/dist/amcharts/plugins/responsive/responsive.js',
|
|
'bower_components/amcharts/dist/amcharts/serial.js',
|
|
'bower_components/amcharts/dist/amcharts/funnel.js',
|
|
'bower_components/amcharts/dist/amcharts/pie.js',
|
|
'bower_components/amcharts-stock/dist/amcharts/amstock.js',
|
|
'bower_components/ammap/dist/ammap/ammap.js',
|
|
'bower_components/ammap/dist/ammap/maps/js/worldLow.js',
|
|
'bower_components/jquery.easing/js/jquery.easing.min.js',
|
|
'bower_components/angular-ui-sortable/sortable.js',
|
|
'bower_components/jquery.easy-pie-chart/dist/jquery.easypiechart.min.js',
|
|
'bower_components/fullcalendar/dist/fullcalendar.min.js',
|
|
'bower_components/Chart.js/Chart.min.js',
|
|
'bower_components/leaflet/dist/leaflet.js',
|
|
'bower_components/angular-toastr/dist/angular-toastr.tpls.min.js',
|
|
'bower_components/angular-smart-table/dist/smart-table.min.js',
|
|
'bower_components/slimScroll/jquery.slimscroll.min.js',
|
|
'bower_components/angular-slimscroll/angular-slimscroll.js',
|
|
'bower_components/hammerjs/hammer.min.js',
|
|
'bower_components/AngularHammer/angular.hammer.min.js',
|
|
'src/app/components/backTop/lib/jquery.backTop.min.js'
|
|
];
|
|
|
|
var src = [
|
|
'src/assets/js/amcharts-blur-theme.js',
|
|
'src/app/**/*.js',
|
|
'!src/app/**/lib/**/*.js'
|
|
];
|
|
var dst = 'release/js/';
|
|
|
|
gulp.src(libSrc).pipe(concat('lib.min.js')).pipe(stripDebug()).pipe(uglify()).pipe(gulp.dest(dst));
|
|
gulp.src(src).pipe(concat('bundle.min.js')).pipe(uglify()).pipe(gulp.dest(dst));
|
|
});
|
|
|
|
gulp.task('font', function () {
|
|
var fontSrc = [
|
|
'src/assets/css/fonts/*',
|
|
'bower_components/bootstrap/fonts/*',
|
|
'bower_components/font-awesome/fonts/*',
|
|
'bower_components/Ionicons/fonts/*',
|
|
];
|
|
var fontDst = 'release/fonts/';
|
|
|
|
gulp.src(fontSrc).pipe(gulp.dest(fontDst));
|
|
});
|
|
|
|
gulp.task('templateCache', function () {
|
|
return gulp.src('src/app/**/*.html')
|
|
.pipe(minifyHTML({ conditionals: true, spare: true, empty: true }))
|
|
.pipe(templateCache({ root: 'app/', module: 'BlurAdmin' }))
|
|
.pipe(gulp.dest('release/js'));
|
|
});
|
|
|
|
gulp.task('html', function () {
|
|
return gulp.src('src/*.html')
|
|
.pipe(minifyHTML({ conditionals: true, spare: true, empty: true }))
|
|
.pipe(gulp.dest('release/'));
|
|
});
|
|
|
|
gulp.task('watch', function () {
|
|
gulp.watch(['src/app/**/*.css', 'src/assets/**/*.css', './**/*.scss '], ['minify-css']);
|
|
gulp.watch(imgSrc, ['imagemin']);
|
|
gulp.watch(['src/app/**/*.js', 'src/assets/**/*.js'], ['js']);
|
|
gulp.watch(['src/app/**/*.html'], ['templateCache']);
|
|
gulp.watch(['src/*.html'], ['html']);
|
|
});
|
|
|
|
gulp.task('init', ['minify-css', 'imagemin', 'js', 'font', 'templateCache', 'html']);
|
|
|
|
gulp.task('default', ['init']); |