// Gulp.js configuration "use strict"; const gulp = require("gulp"); const replace = require("gulp-replace"); const zip = require("gulp-zip"); const del = require("del"); const fs = require("fs"); const dir = { src: ".", build: "./release/", }; // PHP settings const php = { src: [dir.src + "/**/*.php", "!node_modules/**", "!release/**"], build: dir.build, }; const parcel = { src: "./build/release/**", build: dir.build + "build/release/", }; function clean() { return del(dir.build + "**", { force: true }); } function copyPHP() { const { version } = JSON.parse(fs.readFileSync("package.json")); return gulp .src(php.src) .pipe( replace( "$GLOBALS['build'] = 'debug';", "$GLOBALS['build'] = 'release';" ) ) .pipe(replace("Version: 1.0", `Version: ${version}`)) .pipe(gulp.dest(php.build)); } function copyParcel() { return gulp.src(parcel.src).pipe(gulp.dest(parcel.build)); } function zipBuild() { return gulp .src(dir.build + "**") .pipe(zip("knowledge-space.zip")) .pipe(gulp.dest(dir.build)); } function copyDefaultSpace() { return gulp .src("datasets/space.json") .pipe(gulp.dest(dir.build + "datasets/")); } function copyEditorIcons() { return gulp .src("editor/images/**/*.png") .pipe(gulp.dest(dir.build + "editor/images/")); } function copyDatasetDefaultImages() { return gulp .src(["datasets/images/**/*.png", "datasets/images/**/*.jpg"]) .pipe(gulp.dest(dir.build + "datasets/images/")); } function copyBackground() { return gulp .src("backgrounds/background_4.jpg") .pipe(gulp.dest(dir.build + "backgrounds/")); } exports.build = gulp.series( clean, copyPHP, copyParcel, copyDefaultSpace, copyEditorIcons, copyDatasetDefaultImages, copyBackground, zipBuild );