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

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'))