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
144 lines
5.5 KiB
|
5 years ago
|
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);
|