XDUPlayer/gulpfile.js

131 lines
2.5 KiB
JavaScript

const gulp = require('gulp');
const concat = require('gulp-concat');
const rename = require('gulp-rename');
const uglify = require('gulp-uglify-es').default;
const sourcemaps = require('gulp-sourcemaps');
const cssmin = require('gulp-cssmin');
const jsonmin = require('gulp-jsonminify');
const jsFiles = [
"Js/Common.js",
"Js/Shaders.js",
"Js/TextFunctions.js",
"Js/UtageParse.js",
"Js/Audio.js",
"Js/Player.js",
"Js/Main.js"
];
const jsToCopy = [
"Js/XduPlayer.min.js",
"Js/Pixi.min.js"
];
const cssFiles = [
"Css/main.css"
];
const cssToCopy = [
"Css/main.min.css",
"Css/generic.min.css"
];
const jsonFiles = [
"Js/BgmLoop.json",
];
const translations = [
"Js/Translations/**"
];
const jsDest = "Js";
gulp.task('dev', gulp.series(
buildJsDev,
buildCss,
)
);
gulp.task('dist', gulp.series(
gulp.parallel(
gulp.series(
buildJs,
copyJs
),
gulp.series(
buildCss,
copyCss
),
buildJson,
buildJsonTranslations,
copyHtml,
copyImages,
copyCustomData
),
)
);
gulp.task('watch', () => {
gulp.watch(cssFiles, {ignoreInitial: false}, gulp.series(buildCss)),
gulp.watch(jsFiles, {ignoreInitial: false}, gulp.series(buildJsDev));
});
function buildJs() {
return gulp.src(jsFiles)
.pipe(sourcemaps.init())
.pipe(concat('XduPlayer.js'))
.pipe(gulp.dest(jsDest))
.pipe(rename('XduPlayer.min.js'))
.pipe(uglify())
.pipe(sourcemaps.write(''))
.pipe(gulp.dest(jsDest));
}
function buildJsDev() {
return gulp.src(jsFiles)
.pipe(sourcemaps.init())
.pipe(concat('XduPlayer.js'))
.pipe(gulp.dest(jsDest))
.pipe(rename('XduPlayer.min.js'))
.pipe(sourcemaps.write(''))
.pipe(gulp.dest(jsDest));
}
function copyJs() {
return gulp.src(jsToCopy)
.pipe(gulp.dest('Dist/Js'));
}
function buildCss() {
return gulp.src('Css/main.css')
.pipe(cssmin())
.pipe(rename({suffix: '.min'}))
.pipe(gulp.dest('Css'));
}
function copyCss() {
return gulp.src(cssToCopy)
.pipe(gulp.dest('Dist/Css'));
}
function copyHtml() {
return gulp.src('Player.html')
.pipe(gulp.dest('Dist'));
}
function copyImages() {
return gulp.src('Images/**')
.pipe(gulp.dest('Dist/Images'));
}
function copyCustomData() {
return gulp.src('CustomData/**')
.pipe(gulp.dest('Dist/CustomData'));
}
function buildJson() {
return gulp.src(jsonFiles)
.pipe(jsonmin())
.pipe(gulp.dest('Dist/Js'));
}
function buildJsonTranslations() {
return gulp.src(translations)
.pipe(jsonmin())
.pipe(gulp.dest('Dist/Js/Translations'));
}