/// "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"));