164 lines
4.6 KiB
JavaScript
164 lines
4.6 KiB
JavaScript
/*
|
|
* Altair Admin (Landing Page)
|
|
* Automated tasks ( http://gulpjs.com/ )
|
|
*/
|
|
|
|
var gulp = require('gulp'),
|
|
plugins = require("gulp-load-plugins")({
|
|
pattern: ['gulp-*', 'gulp.*', '*'],
|
|
replaceString: /\bgulp[\-.]/
|
|
}),
|
|
runSequence = require("run-sequence");
|
|
|
|
// browser sync
|
|
var bs_landing = require('browser-sync').create('altair_landing_page');
|
|
|
|
// chalk error
|
|
var chalk = require('chalk');
|
|
var chalk_error = chalk.bold.red;
|
|
|
|
// get altair version
|
|
var pjson = require('./package.json');
|
|
var version = pjson.version;
|
|
|
|
// 1. -------------------- MINIFY/CONCATENATE JS FILES --------------------
|
|
|
|
// commmon
|
|
gulp.task('js_common', function () {
|
|
return gulp.src([
|
|
"bower_components/jquery/dist/jquery.js",
|
|
// bez easing
|
|
"bower_components/jquery-bez/jquery.bez.min.js",
|
|
// one page nav
|
|
"assets/js/custom/jquery.nav.js"
|
|
])
|
|
.pipe(plugins.concat('common.js'))
|
|
.on('error', function(err) {
|
|
console.log(chalk_error(err.message));
|
|
this.emit('end');
|
|
})
|
|
.pipe(gulp.dest('assets/js/'))
|
|
.pipe(plugins.uglify({
|
|
mangle: true
|
|
}))
|
|
.pipe(plugins.rename('common.min.js'))
|
|
.pipe(plugins.size({
|
|
showFiles: true
|
|
}))
|
|
.pipe(gulp.dest('assets/js/'));
|
|
});
|
|
|
|
// custom uikit
|
|
gulp.task('js_uikit', function () {
|
|
return gulp.src([
|
|
// uikit core
|
|
"bower_components/uikit/js/uikit.js",
|
|
// uikit components
|
|
"bower_components/uikit/js/components/accordion.js",
|
|
"bower_components/uikit/js/components/grid.js",
|
|
"bower_components/uikit/js/components/lightbox.js",
|
|
"bower_components/uikit/js/components/parallax.js",
|
|
"bower_components/uikit/js/components/slider.js",
|
|
"bower_components/uikit/js/components/slideshow.js",
|
|
"bower_components/uikit/js/components/tooltip.js",
|
|
"assets/js/custom/uikit_beforeready.js"
|
|
])
|
|
.pipe(plugins.concat('uikit_custom.js'))
|
|
.pipe(gulp.dest('assets/js/'))
|
|
.pipe(plugins.uglify({
|
|
mangle: true
|
|
}))
|
|
.pipe(plugins.rename('uikit_custom.min.js'))
|
|
.pipe(plugins.size({
|
|
showFiles: true
|
|
}))
|
|
.pipe(gulp.dest('assets/js/'));
|
|
});
|
|
|
|
// common/custom functions
|
|
gulp.task('js_minify', function () {
|
|
return gulp.src([
|
|
'assets/js/*.js',
|
|
'!assets/js/common.js',
|
|
'!assets/js/uikit_custom.js',
|
|
'!assets/js/**/*.min.js'
|
|
])
|
|
.pipe(plugins.uglify({
|
|
mangle: true
|
|
}).on('error', console.error))
|
|
.pipe(plugins.rename({
|
|
extname: ".min.js"
|
|
}))
|
|
.pipe(gulp.dest(function(file) {
|
|
return file.base;
|
|
}));
|
|
});
|
|
|
|
// -------------------- LESS TO CSS --------------------
|
|
|
|
// main styles
|
|
gulp.task('less_main', function() {
|
|
return gulp.src('assets/less/main.less')
|
|
.pipe(plugins.sourcemaps.init())
|
|
.pipe(plugins.less())
|
|
.on('error', function(err) {
|
|
console.log(chalk_error(err.message));
|
|
this.emit('end');
|
|
})
|
|
.pipe(plugins.autoprefixer())
|
|
.pipe(plugins.sourcemaps.write('.', {
|
|
sourceRoot: '../less/'
|
|
}))
|
|
.pipe(gulp.dest('assets/css'))
|
|
.pipe(plugins.sourcemaps.init({loadMaps: true}))
|
|
.pipe(bs_landing.stream())
|
|
.pipe(plugins.cleanCss({
|
|
advanced: false,
|
|
keepSpecialComments: 0,
|
|
sourceMap: true
|
|
}))
|
|
.pipe(plugins.rename('main.min.css'))
|
|
.pipe(plugins.sourcemaps.write('.', {
|
|
sourceRoot: '../less/'
|
|
}))
|
|
.pipe(gulp.dest('assets/css'));
|
|
});
|
|
|
|
// -------------------- BROWSER SYNC http://www.browsersync.io/docs/ --------------------
|
|
gulp.task('serve', function() {
|
|
|
|
bs_landing.init({
|
|
// http://www.browsersync.io/docs/options/#option-host
|
|
//host: "192.168.1.188",
|
|
// http://www.browsersync.io/docs/options/#option-proxy
|
|
//proxy: "altair_landing.local",
|
|
server: {
|
|
baseDir: "./"
|
|
},
|
|
// http://www.browsersync.io/docs/options/#option-port
|
|
port: 3066,
|
|
// http://www.browsersync.io/docs/options/#option-notify
|
|
notify: true,
|
|
open: false,
|
|
ui: {
|
|
port: 3065
|
|
}
|
|
});
|
|
|
|
gulp.watch([
|
|
'assets/less/**/*.less'
|
|
],['less_main']);
|
|
|
|
gulp.watch([
|
|
'index.html'
|
|
]).on('change', bs_landing.reload);
|
|
|
|
});
|
|
|
|
// -------------------- DEFAULT TASK ----------------------
|
|
gulp.task('default', function(callback) {
|
|
return runSequence(
|
|
['js_common','js_minify','js_uikit','less_main'],
|
|
callback
|
|
);
|
|
}); |