forked from ezreal/BI-FR-MIX-FRONT
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.
77 lines
3.0 KiB
77 lines
3.0 KiB
var gulp = require('gulp'); |
|
var jshint = require('gulp-jshint'); |
|
var concat = require('gulp-concat'); |
|
var rename = require('gulp-rename'); |
|
var uglify = require('gulp-uglify'); |
|
const babel = require('gulp-babel'); |
|
const cssmin = require('gulp-cssmin') |
|
|
|
const subjectSrcTargetPath = "../src/main/resources/com/fr/plugin/bi/mix/web/js/subject"; |
|
const decisionSrcTargetPath = "../src/main/resources/com/fr/plugin/bi/mix/web/js/decision"; |
|
const subjectPluginTargetPath = "../../../webroot/WEB-INF/plugins/plugin-com.fr.plugin.BI.fusion.front-1.0/classes/com/fr/plugin/bi/mix/web/js/subject"; |
|
const decisionPluginTargetPath = "../../../webroot/WEB-INF/plugins/plugin-com.fr.plugin.BI.fusion.front-1.0/classes/com/fr/plugin/bi/mix/web/js/decision"; |
|
//const pluginTargetPath = "distTest"; |
|
|
|
// Lint JS |
|
gulp.task('lint', function () { |
|
return gulp.src('src/**/*.js') |
|
.pipe(jshint()) |
|
.pipe(jshint.reporter('default')); |
|
}); |
|
|
|
// Concat & Minify JS |
|
|
|
gulp.task('decision', buildMinifyTask(['src/common/**/*.js', 'src/decision/**/*.js'], 'fr.mix.bi.decision', 'js', decisionSrcTargetPath, decisionPluginTargetPath, true, false)) |
|
gulp.task('subject', buildMinifyTask(['src/common/**/*.js', 'src/subject/**/*.js'], 'fr.mix.bi.subject', 'js', subjectSrcTargetPath, subjectPluginTargetPath, true, false)) |
|
|
|
function buildMinifyTask(src, name, fileType, srcTargetPath, pluginTargetPath, isDev = false, isUglify = true) { |
|
return function () { |
|
var task = gulp.src(src) |
|
.pipe(concat(name + '.' + fileType)) |
|
.pipe(gulp.dest('dist')) |
|
.pipe(rename(name + '.min.' + fileType)) |
|
.pipe(babel({ |
|
presets: ['@babel/preset-env'] |
|
})); |
|
if (isUglify) { |
|
task = task.pipe(uglify( |
|
{ |
|
compress: { |
|
drop_console: false, // 过滤 console |
|
drop_debugger: false // 过滤 debugger |
|
} |
|
} |
|
)); |
|
} |
|
task = task.pipe(gulp.dest('dist')) |
|
.pipe(gulp.dest(srcTargetPath)); |
|
return isDev ? task.pipe(gulp.dest(pluginTargetPath)) : task; |
|
}; |
|
} |
|
|
|
function buildMinifyCssTask(src, name, isDev = false) { |
|
return function () { |
|
var task = gulp.src(src) |
|
.pipe(concat(name + '.css')) |
|
.pipe(gulp.dest('dist')) |
|
.pipe(rename(name + '.min.css')) |
|
.pipe(cssmin()) |
|
.pipe(gulp.dest('dist')) |
|
.pipe(gulp.dest(reportSrcTargetPath)); |
|
return isDev ? task.pipe(gulp.dest(pluginTargetPath)) : task; |
|
}; |
|
} |
|
|
|
// Watch Our Files |
|
gulp.task('watch', function () { |
|
gulp.watch('src/**/*.js', gulp.series('buildTask')); |
|
// gulp.watch('src/**/*.css', gulp.series('minifyBiShowCssDev')); |
|
}); |
|
|
|
// buildTask |
|
gulp.task('buildTask', gulp.series('decision', 'subject')); |
|
|
|
// devTask |
|
//gulp.task('devTask', gulp.series('lint', 'minifyDev', 'minifyBiShow', 'minifyBiShowCssDev', 'minifyBiEditDev', 'watch')); |
|
|
|
gulp.task('default', gulp.series('buildTask', 'watch')) |