You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

144 lines
5.5 KiB

var gulp = require("gulp"),
uglify = require("gulp-uglify"),
lodash = require("lodash"),
sourcemaps = require("gulp-sourcemaps"),
concat = require("gulp-concat"),
rename = require("gulp-rename"),
vars = require('../variables');
// compile and concate js
const compileJs = function () {
const out = vars.getDistAssetsPath() + "js/";
const baseAssets = vars.getBaseAssetsPath();
//copying demo pages related assets
var appPagesAssets = {
js: [
baseAssets + "js/pages/demo.dashboard.js",
baseAssets + "js/pages/demo.dashboard-crm.js",
baseAssets + "js/pages/demo.dashboard-projects.js",
baseAssets + "js/pages/demo.dashboard-analytics.js",
baseAssets + "js/pages/demo.britechart.js",
baseAssets + "js/pages/demo.calendar.js",
baseAssets + "js/pages/demo.chartjs.js",
baseAssets + "js/pages/demo.datatable-init.js",
baseAssets + "js/pages/demo.form-wizard.js",
baseAssets + "js/pages/demo.google-maps.js",
baseAssets + "js/pages/demo.vector-maps.js",
baseAssets + "js/pages/demo.profile.js",
baseAssets + "js/pages/demo.toastr.js",
baseAssets + "js/pages/demo.project-detail.js",
baseAssets + "js/pages/demo.apex-line.js",
baseAssets + "js/pages/demo.apex-area.js",
baseAssets + "js/pages/demo.apex-column.js",
baseAssets + "js/pages/demo.apex-bar.js",
baseAssets + "js/pages/demo.apex-mixed.js",
baseAssets + "js/pages/demo.apex-bubble.js",
baseAssets + "js/pages/demo.apex-candlestick.js",
baseAssets + "js/pages/demo.apex-scatter.js",
baseAssets + "js/pages/demo.apex-pie.js",
baseAssets + "js/pages/demo.apex-radialbar.js",
baseAssets + "js/pages/demo.apex-heatmap.js",
baseAssets + "js/pages/demo.apex-sparklines.js",
baseAssets + "js/pages/demo.apex-radar.js",
baseAssets + "js/pages/demo.summernote.js",
baseAssets + "js/pages/demo.simplemde.js",
baseAssets + "js/pages/demo.products.js",
baseAssets + "js/pages/demo.customers.js",
baseAssets + "js/pages/demo.sellers.js",
baseAssets + "js/pages/demo.widgets.js",
baseAssets + "js/pages/demo.typehead.js",
baseAssets + "js/pages/demo.sparkline.js",
baseAssets + "js/pages/demo.inbox.js",
baseAssets + "js/pages/demo.project-gantt.js"
]
};
lodash(appPagesAssets).forEach(function (assets, type) {
gulp.src(assets)
.pipe(uglify())
.on("error", function (err) {
console.log(err.toString());
})
.pipe(gulp.dest(out + "pages"));
});
// optional components
var componentsAssets = {
js: [
baseAssets + "js/ui/component.dragula.js",
baseAssets + "js/ui/component.fileupload.js",
baseAssets + "js/ui/component.chat.js",
baseAssets + "js/ui/component.todo.js",
baseAssets + "js/ui/component.range-slider.js",
baseAssets + "js/ui/component.rating.js",
baseAssets + "js/ui/component.scrollbar.js"
]
};
lodash(componentsAssets).forEach(function (assets, type) {
gulp.src(assets)
.pipe(uglify())
.on("error", function (err) {
console.log(err.toString());
})
.pipe(gulp.dest(out + "ui"));
});
// creating separate vendor js file
gulp
.src([
baseAssets + "js/vendor/jquery.js",
baseAssets + "js/vendor/bootstrap.bundle.js",
baseAssets + "js/vendor/moment.js",
baseAssets + "js/vendor/simplebar.min.js",
baseAssets + "js/vendor/daterangepicker.js",
baseAssets + "js/vendor/metisMenu.js",
baseAssets + "js/vendor/jquery.toast.min.js",
baseAssets + "js/vendor/select2.min.js",
baseAssets + "js/vendor/jquery.mask.min.js",
baseAssets + "js/vendor/jquery.bootstrap.wizard.min.js",
baseAssets + "js/vendor/bootstrap-timepicker.min.js",
baseAssets + "js/vendor/jquery.bootstrap-touchspin.min.js",
baseAssets + "js/vendor/bootstrap-maxlength.min.js",
baseAssets + "js/vendor/bootstrap-datepicker.min.js",
baseAssets + "js/vendor/highlight.pack.min.js",
])
.pipe(sourcemaps.init())
.pipe(concat("vendor.js"))
.pipe(gulp.dest(out))
.pipe(
rename({
// rename app.js to app.min.js
suffix: ".min"
})
)
.pipe(uglify())
.on("error", function (err) {
console.log(err.toString());
})
.pipe(sourcemaps.write("./"))
.pipe(gulp.dest(out));
// It's important to keep files at this order
// so that `app.min.js` can be executed properly
return gulp
.src([baseAssets + "js/layout.js", baseAssets + "js/hyper.js"])
.pipe(sourcemaps.init())
.pipe(concat("app.js"))
.pipe(gulp.dest(out))
.pipe(
rename({
// rename app.js to app.min.js
suffix: ".min"
})
)
.pipe(uglify())
.on("error", function (err) {
console.log(err.toString());
})
.pipe(sourcemaps.write("./"))
.pipe(gulp.dest(out));
}
gulp.task(compileJs);