Skip to content
Snippets Groups Projects
gulpfile.js 1.28 KiB
Newer Older
  • Learn to ignore specific revisions
  • // Gulp.js configuration
    "use strict";
    
    const gulp = require("gulp");
    const replace = require("gulp-replace");
    
    Matthias Konitzny's avatar
    Matthias Konitzny committed
    const zip = require("gulp-zip");
    
    const del = require("del");
    
    
    const dir = {
        src: ".",
        build: "./release/",
    };
    
    // PHP settings
    const php = {
    
        src: [
            dir.src + "/**/*.php",
            "!node_modules/**",
            "!release/**",
            "!build/**",
        ],
    
        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));
    
    Matthias Konitzny's avatar
    Matthias Konitzny committed
    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);