Files
matrix_home_web/gulpfile.js
2025-04-23 10:45:21 +02:00

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
);
});