1
0
Fork 0
mirror of https://github.com/iNavFlight/inav-configurator.git synced 2025-07-15 04:15:28 +03:00
inav-configurator/gulpfile.js
Alberto García Hierro 14f9cb80df Cleanup gulpfile.js, fix minification
Move outputDir to a constant.
Add an output variable which contains the filenames for each
output file.
Remove usage of 'let' and 'for(... of [Object])' from osd.js,
since uglify doesn't support ES6 and babel failed on
google-analytics-bundle.js
Fix 'deploy-receiver-css'. uglify() was being called as part of
the pipeline instead of the correct minifyCSS() call.
Let npm sort the deps rather than editing them manually
Add missing openlayers dependency
2017-08-31 21:27:31 +01:00

192 lines
5.1 KiB
JavaScript

'use strict';
var gulp = require('gulp');
var rename = require('gulp-rename');
var uglify = require('gulp-uglify');
var concat = require('gulp-concat');
var minifyCSS = require('gulp-minify-css');
var sources = {};
sources.css = [
'./main.css',
'./js/libraries/jquery.nouislider.min.css',
'./js/libraries/jquery.nouislider.pips.min.css',
'./js/libraries/flightindicators.css',
'./src/css/tabs/*.css',
'./src/css/opensans_webfontkit/fonts.css',
'./src/css/font-awesome/css/font-awesome.css',
'./src/css/dropdown-lists/css/style_lists.css',
'./js/libraries/switchery/switchery.css',
'./js/libraries/jbox/jBox.css'
];
sources.js = [
'./js/libraries/google-analytics-bundle.js',
'./node_modules/jquery/dist/jquery.min.js',
'./node_modules/jquery-ui-npm/jquery-ui.min.js',
'./js/libraries/d3.min.js',
'./js/libraries/jquery.nouislider.all.min.js',
'./node_modules/three/three.min.js',
'./js/libraries/Projector.js',
'./js/libraries/CanvasRenderer.js',
'./js/libraries/jquery.flightindicators.js',
'./js/libraries/semver.js',
'./js/libraries/jbox/jBox.min.js',
'./js/libraries/switchery/switchery.js',
'./js/libraries/jquery.ba-throttle-debounce.js',
'./node_modules/inflection/inflection.min.js',
'./node_modules/bluebird/js/browser/bluebird.min.js',
'./js/injected_methods.js',
'./js/intervals.js',
'./js/timeouts.js',
'./js/pid_controller.js',
'./js/simple_smooth_filter.js',
'./js/walking_average_filter.js',
'./js/gui.js',
'./js/msp/MSPCodes.js',
'./js/msp/MSPHelper.js',
'./js/msp/MSPchainer.js',
'./js/port_handler.js',
'./js/serial.js',
'./js/model.js',
'./js/serial_backend.js',
'./js/data_storage.js',
'./js/fc.js',
'./js/msp.js',
'./js/protocols/stm32.js',
'./js/protocols/stm32usbdfu.js',
'./js/localization.js',
'./js/boards.js',
'./js/tasks.js',
'./main.js',
'./tabs/*.js',
'./js/eventFrequencyAnalyzer.js',
'./js/periodicStatusUpdater.js',
'./js/serial_queue.js',
'./js/msp_balanced_interval.js',
'./tabs/advanced_tuning.js',
'./js/peripherals.js'
];
sources.mapCss = [
'./node_modules/openlayers/dist/ol.css'
];
sources.mapJs = [
'./node_modules/openlayers/dist/ol.js'
];
sources.receiverCss = [
'./css/opensans_webfontkit/fonts.css',
'./js/libraries/jquery.nouislider.min.css',
'./js/libraries/jquery.nouislider.pips.min.css',
'./tabs/receiver_msp.css'
];
sources.receiverJs = [
'./node_modules/jquery/dist/jquery.min.js',
'./node_modules/jquery-ui-npm/jquery-ui.min.js',
'./js/libraries/jquery.nouislider.all.min.js',
'./tabs/receiver_msp.js'
];
var output = {
css: 'styles.css',
js: 'script.js',
mapCss: 'map.css',
mapJs: 'map.js',
receiverCss: 'receiver-msp.css',
receiverJs: 'receiver-msp.js',
};
var outputDir = './build/';
gulp.task('build-css', function () {
return gulp.src(sources.css)
.pipe(concat(output.css))
.pipe(gulp.dest(outputDir));
});
gulp.task('build-js', function () {
return gulp.src(sources.js)
.pipe(concat(output.js))
.pipe(gulp.dest(outputDir));
});
gulp.task('build-map-css', function () {
return gulp.src(sources.mapCss)
.pipe(concat(output.mapCss))
.pipe(gulp.dest(outputDir));
});
gulp.task('build-map-js', function () {
return gulp.src(sources.mapJs)
.pipe(concat(output.mapJs))
.pipe(gulp.dest(outputDir));
});
gulp.task('deploy-css', function () {
return gulp.src(sources.css)
.pipe(concat(output.css))
.pipe(minifyCSS())
.pipe(gulp.dest(outputDir));
});
gulp.task('deploy-js', function () {
return gulp.src(sources.js)
.pipe(concat(output.js))
.pipe(uglify())
.pipe(gulp.dest(outputDir));
});
gulp.task('build-receiver-css', function () {
return gulp.src(sources.receiverCss)
.pipe(concat(output.receiverCss))
.pipe(gulp.dest(outputDir));
});
gulp.task('deploy-receiver-css', function () {
return gulp.src(sources.receiverCss)
.pipe(concat(output.receiverCss))
.pipe(minifyCSS())
.pipe(gulp.dest(outputDir));
});
gulp.task('build-receiver-msp-js', function () {
return gulp.src(sources.receiverJs)
.pipe(concat(output.receiverJs))
.pipe(gulp.dest(outputDir));
});
gulp.task('deploy-receiver-msp-js', function () {
return gulp.src(sources.receiverJs)
.pipe(concat(output.receiverJs))
.pipe(uglify())
.pipe(gulp.dest(outputDir));
});
gulp.task('build', ['build-css', 'build-js', 'build-receiver-css', 'build-receiver-msp-js', 'build-map-css', 'build-map-js']);
gulp.task('deploy', ['deploy-css', 'deploy-js', 'deploy-receiver-css', 'deploy-receiver-msp-js']);
gulp.task('watch', function () {
gulp.watch('js/**/*.js', ['build-js']);
gulp.watch('css/*.css', ['build-css']);
gulp.watch('main.css', ['build-css']);
gulp.watch('main.js', ['build-js']);
gulp.watch('tabs/*.js', ['build-js']);
gulp.watch('tabs/*.css', ['build-css']);
gulp.watch('eventPage.js', ['build-js']);
});
gulp.task('default', ['build']);