Skip to content
Snippets Groups Projects
gulpfile.js 1.28 KiB
// 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/**",
    ],
    build: dir.build,
};

const webpack = {
    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 copyWebpackContent() {
    return gulp.src(webpack.src).pipe(gulp.dest(webpack.build));
}

function zipBuild() {
    return gulp
        .src(dir.build + "**")
        .pipe(zip("knowledge-space.zip"))
        .pipe(gulp.dest(dir.build));
}

exports.build = gulp.series(clean, copyPHP, copyWebpackContent, zipBuild);