295 lines
12 KiB
JavaScript

/// <binding Clean='doAll' ProjectOpened='watch' />
"use strict";
var gulp = require("gulp"),
rimraf = require("rimraf"),
concat = require("gulp-concat"),
cssmin = require("gulp-cssmin"),
uglify = require("gulp-uglify"),
strip = require("gulp-strip-comments"),
sass = require("gulp-sass"),
sourcemaps = require("gulp-sourcemaps"),
removeSourcemaps = require("gulp-remove-sourcemaps"),
sass = require('gulp-sass')(require('sass')),
ts = require("gulp-typescript"),
gulpSequence = require("gulp-sequence"),
rename = require('gulp-rename'),
path = require('path'),
terser = require('gulp-terser');
var tsProject = ts.createProject("tsconfig.json");
var paths = {
webroot: "./wwwroot/"
};
paths.js = paths.webroot + "scripts/**/*.js";
paths.minJs = paths.webroot + "scripts/**/*.min.js";
paths.libJs = paths.webroot + "lib/**/*.js";
paths.libMinJs = paths.webroot + "lib/**/*.min.js";
paths.css = paths.webroot + "css/**/*.css";
paths.minCss = paths.webroot + "css/**/*.min.css";
paths.concatJsDest = paths.webroot + "scripts/app.min.js";
paths.concatCssDest = paths.webroot + "css/site.min.css";
gulp.task("clean:js", function (cb) {
rimraf("./wwwroot/scripts/**/*", cb);
});
gulp.task("clean:css", function (cb) {
rimraf("./wwwroot/css/**/*", cb);
});
gulp.task("clean", gulp.parallel("clean:js", "clean:css"));
gulp.task("sass", function () {
return gulp.src('scss/*.scss')
.pipe(sass())
.pipe(gulp.dest('wwwroot/css'))
.pipe(sass({ outputStyle: 'compressed' }))
.pipe(rename({ suffix: '.min' }))
.pipe(gulp.dest('wwwroot/css/'));
});
gulp.task('watch', function () {
gulp.watch("scss/**/*.scss", gulp.series('sass'));
gulp.watch("TS/**/*.ts", gulp.series('processTypeScript'));
});
gulp.task('processTypeScript', function () {
return gulp.src(['TS/**/*.ts'])
.pipe(sourcemaps.init())
.pipe(tsProject()).js
.pipe(sourcemaps.write('.',
{
includeContent: false,
sourceRoot: function (file) {
return 'D:\\Kunden\\GehGassi\\gehGassi\\gehGassi.Web\\TS';
//var innerPath = path.relative(path.dirname(file.path), file.base) + "/TS/";
//innerPath = innerPath.replace(/\\/g, "/");
//console.log(innerPath);
//return innerPath;
}
}))
.pipe(gulp.dest('./wwwroot/scripts'));
});
gulp.task("min:js", function () {
return gulp.src([paths.js, "!" + paths.minJs], { base: "." })
.pipe(terser())
.pipe(strip({ trim: true }))
.pipe(rename({ suffix: ".min" }))
.pipe(gulp.dest("."));
});
gulp.task("libMin:js", function () {
return gulp.src([paths.libJs, "!" + paths.libMinJs], { base: "." })
.pipe(terser())
.pipe(strip({ trim: true }))
.pipe(rename({ suffix: ".min" }))
.pipe(gulp.dest("."));
});
gulp.task("min", gulp.series("min:js", "libMin:js"));
gulp.task('jquery:base', function () {
return gulp.src('./node_modules/jquery/dist/**/*.js')
.pipe(gulp.dest('./wwwroot/lib/jquery'));
});
gulp.task('jquery:validation', function () {
return gulp.src('./node_modules/jquery-validation/dist/**/*.js')
.pipe(gulp.dest('./wwwroot/lib/jquery-validation'));
});
gulp.task('jquery:validation-unobtrusive', function () {
return gulp.src('./node_modules/jquery-validation-unobtrusive/dist/**/*.js')
.pipe(gulp.dest('./wwwroot/lib/jquery-validation-unobtrusive'));
});
gulp.task('jquery:validation-globalize', function () {
return gulp.src('./node_modules/jquery-validation-globalize-fix/*globalize.js')
.pipe(gulp.dest('./wwwroot/lib/jquery-validation-globalize'));
});
gulp.task("jquery", gulp.parallel("jquery:base", "jquery:validation", "jquery:validation-unobtrusive", "jquery:validation-globalize"));
gulp.task('jqueryValidationBundle', function () {
return gulp.src(['./node_modules/jquery-validation/dist/jquery.validate.js', './node_modules/jquery-validation-unobtrusive/dist/jquery.validate.unobtrusive.js', './node_modules/jquery-validation-globalize-fix/jquery.validate.globalize.js'])
.pipe(concat('jqueryValidationBundle.js'))
.pipe(gulp.dest('./wwwroot/lib/jquery-validation'));
});
gulp.task('block-ui', function () {
return gulp.src('./node_modules/block-ui/**/*.js', { base: "./node_modules/block-ui/" })
.pipe(gulp.dest('./wwwroot/lib/block-ui'));
});
gulp.task('bootstrap:base', function () {
return gulp.src(['./node_modules/bootstrap/dist/**/*.*', '!./node_modules/bootstrap/dist/**/*npm.js'])
.pipe(gulp.dest('./wwwroot/lib/bootstrap'));
});
gulp.task('bootstrap:cssmin', function () {
return gulp.src(['./node_modules/bootstrap/dist/**/*.css', '!./node_modules/bootstrap/dist/**/*.min.css'])
.pipe(cssmin())
.pipe(rename({ suffix: ".min" }))
.pipe(gulp.dest('./wwwroot/lib/bootstrap'));
});
gulp.task("bootstrap", gulp.parallel("bootstrap:base", "bootstrap:cssmin"));
//CoreUi
gulp.task('coreui:js', function () {
return gulp.src(
['./node_modules/@coreui/coreui/dist/js/**/*.min.js'])
.pipe(rename({ dirname: "" }))
.pipe(removeSourcemaps())
.pipe(gulp.dest('./wwwroot/lib/coreui/scripts'));
});
gulp.task('coreui:cssmin', function () {
return gulp.src(['./node_modules/@coreui/coreui/dist/css/**/*.css', '!./node_modules/@coreui/coreui/dist/css/**/*.min.css'])
.pipe(cssmin())
.pipe(rename({ suffix: ".min" }))
.pipe(gulp.dest('./wwwroot/lib/coreui'));
});
gulp.task("coreui", gulp.parallel("coreui:js", "coreui:cssmin"));
//Syncfusion
gulp.task('syncfusion:js', function () {
return gulp.src(
['./node_modules/@syncfusion/**/*.umd.min.js'])
.pipe(rename({ dirname: "" }))
.pipe(removeSourcemaps())
.pipe(gulp.dest('./wwwroot/lib/syncfusion/scripts'));
});
gulp.task('syncfusion:css', function () {
return gulp.src(
['./node_modules/@syncfusion/ej2/*.css'],
{ base: "./node_modules/@syncfusion/ej2/" })
.pipe(gulp.dest('./wwwroot/lib/syncfusion/css'))
.pipe(cssmin())
.pipe(rename({ suffix: ".min" }))
.pipe(gulp.dest('./wwwroot/lib/syncfusion/css'));
});
gulp.task("syncfusion", gulp.parallel("syncfusion:js", "syncfusion:css"));
gulp.task('fontawesome', function () {
return gulp.src(
['./node_modules/@fortawesome/fontawesome-free/css/*.*', './node_modules/@fortawesome/fontawesome-free/webfonts/*.*'], { base: "./node_modules/@fortawesome/fontawesome-free/." })
.pipe(gulp.dest('./wwwroot/lib/font-awesome'));
});
//gulp.task('core-js', function () {
// return gulp.src(
// ['./node_modules/core-js/**/*.js'])
// .pipe(rename({ dirname: "" }))
// .pipe(gulp.dest('./wwwroot/lib/core-js'));
//});
gulp.task('simplebar', function () {
return gulp.src(
['./node_modules/simplebar/dist/**/*.js'])
.pipe(rename({ dirname: "" }))
.pipe(gulp.dest('./wwwroot/lib/simplebar'));
});
gulp.task('toast', function () {
return gulp.src('./node_modules/pyrsmk-toast/lib/**/*.js', { base: "./node_modules/pyrsmk-toast/lib/" })
.pipe(gulp.dest('./wwwroot/lib/toast'));
});
gulp.task('toastr', function () {
return gulp.src('./node_modules/toastr/toastr.js')
.pipe(gulp.dest('./wwwroot/lib/toastr'));
});
gulp.task('sortablejs', function () {
return gulp.src('./node_modules/sortablejs/Sortable.js')
.pipe(gulp.dest('./wwwroot/lib/sortablejs'));
});
gulp.task('promise', function () {
return gulp.src('./node_modules/promise-polyfill/dist/polyfill.js', { base: "./node_modules/promise-polyfill/dist/" })
.pipe(gulp.dest('./wwwroot/lib/promise-polyfill'));
});
gulp.task('systemjs', function () {
return gulp.src('./node_modules/systemjs/dist/**/*.js', { base: "./node_modules/systemjs/dist/" })
.pipe(gulp.dest('./wwwroot/lib/systemjs'));
});
gulp.task('globalize', function () {
return gulp.src('./node_modules/globalize/dist/**/*.js', { base: "./node_modules/globalize/dist/" })
.pipe(gulp.dest('./wwwroot/lib/globalize'));
});
gulp.task('globalizeBundle', function () {
return gulp.src(['./node_modules/globalize/dist/globalize.js', './node_modules/globalize/dist/globalize/message.js', './node_modules/globalize/dist/globalize/number.js', './node_modules/globalize/dist/globalize/date.js'], { base: "./node_modules/globalize/dist/" })
.pipe(concat('globalizeBundle.js'))
.pipe(gulp.dest('./wwwroot/lib/globalize'));
});
gulp.task('cldr', function () {
return gulp.src('./node_modules/cldrjs/dist/**/*.js', { base: "./node_modules/cldrjs/dist/" })
.pipe(gulp.dest('./wwwroot/lib/cldr'));
});
gulp.task('cldrBundle', function () {
return gulp.src(['./node_modules/cldrjs/dist/cldr.js', './node_modules/cldrjs/dist/cldr/*.js'], { base: "./node_modules/cldrjs/dist/" })
.pipe(concat('cldrbundle.js'))
.pipe(gulp.dest('./wwwroot/lib/cldr'));
});
gulp.task('cldr-data', function () {
return gulp.src(['./node_modules/cldr-data/main/de/*.*', './node_modules/cldr-data/main/en/*.*', './node_modules/cldr-data/main/it/*.*', './node_modules/cldr-data/main/fr/*.*', './node_modules/cldr-data/supplemental/*.*'], { base: "./node_modules/cldr-data/" })
.pipe(gulp.dest('./wwwroot/lib/cldr-data'));
});
gulp.task('customlib', function () {
return gulp.src('./Lib/**/*.*', { base: "./Lib/." })
.pipe(gulp.dest('./wwwroot/lib/'));
});
gulp.task('signalr', function () {
return gulp.src('./node_modules/@microsoft/signalr/dist/browser/**/*.js', { base: "./node_modules/@microsoft/signalr/dist/browser/" })
.pipe(gulp.dest('./wwwroot/lib/signalr'));
});
gulp.task('uppload', function () {
return gulp.src('./node_modules/uppload/dist/index.umd.js', { base: "./node_modules/uppload/dist/" })
.pipe(gulp.dest('./wwwroot/lib/uppload'));
});
gulp.task('cropperjs', function () {
return gulp.src('./node_modules/cropperjs/dist/**/*.js', { base: "./node_modules/cropperjs/dist/" })
.pipe(gulp.dest('./wwwroot/lib/cropperjs'));
});
gulp.task('focustrap', function () {
return gulp.src('./node_modules/focus-trap/dist/**/*.js', { base: "./node_modules/focus-trap/dist/" })
.pipe(gulp.dest('./wwwroot/lib/focustrap'));
});
gulp.task('mitt', function () {
return gulp.src('./node_modules/mitt/dist/**/*.js', { base: "./node_modules/mitt/dist/" })
.pipe(gulp.dest('./wwwroot/lib/mitt'));
});
gulp.task('leaflet', function () {
return gulp.src(['./node_modules/leaflet/dist/leaflet.js', './node_modules/leaflet.markercluster/dist/leaflet.markercluster.js'])
.pipe(gulp.dest('./wwwroot/lib/leaflet'));
});
gulp.task('lib', function () {
return gulp.src(['./node_modules/popper.js/dist/umd/popper.js', './node_modules/perfect-scrollbar/dist/perfect-scrollbar.js',
'./node_modules/toastr/toastr.js', './node_modules/block-ui/**/*.js', './node_modules/bootstrap-html5sortable/jquery.sortable.js'])
.pipe(concat('bundle.js'))
.pipe(gulp.dest('./wwwroot/lib/bundle'))
.pipe(rename('bundle.min.js'))
//.pipe(uglify())
.pipe(gulp.dest('./wwwroot/lib/bundle'));
});
gulp.task("doAll", gulp.series("clean", "processTypeScript", "sass", "jquery", "jqueryValidationBundle", "bootstrap", "toast", "toastr", "sortablejs", "customlib", "syncfusion", "block-ui", "coreui", /*"core-js",*/ "simplebar", "fontawesome", "systemjs", "promise", "globalize", "globalizeBundle", "cldr", "cldrBundle", "cldr-data", "signalr", "uppload", "cropperjs", "focustrap", "mitt", "leaflet", "lib", "min"));
gulp.task("doLib", gulp.series("clean", "jquery", "jqueryValidationBundle", "bootstrap", "toast", "toastr", "sortablejs", "customlib", "syncfusion", "block-ui", "coreui", /*"core-js",*/ "simplebar", "fontawesome", "systemjs", "promise", "globalize", "globalizeBundle", "cldr", "cldrBundle", "cldr-data", "signalr", "uppload", "cropperjs", "focustrap", "mitt", "leaflet", "lib", "min"));
gulp.task("doApp", gulp.series("clean", "processTypeScript", "sass", "min"));