const fs = require('fs'), gulp = require('gulp'), clean = require('gulp-clean'), zip = require('gulp-zip').default; const PACKAGE = require('./package.json'); const NAME = PACKAGE.name.split('/').pop(); // Clean Tasks gulp.task('clean-package-files', (done) => { if (!fs.existsSync('./dist')) return done(); return gulp.src(`./dist/${NAME}`, { read: false, allowEmpty: true, }).pipe(clean()); }); gulp.task('clean-package-zip', (done) => { if (!fs.existsSync('./dist')) return done(); return gulp.src('./dist/*.zip', { read: false, allowEmpty: true, }).pipe(clean()); }); gulp.task( 'clean-package', gulp.series( 'clean-package-files', 'clean-package-zip' ) ); gulp.task( 'clean', gulp.series( 'clean-package' ) ); // Package Tasks gulp.task('package-copy', () => { return gulp.src([ 'assets/**/*', 'inc/**/*', 'lib/**/*', 'vendor/**/*', 'LICENSE', `${NAME}.php`, 'readme.txt' ], { base: './', encoding: false, }) .pipe(gulp.dest(`./dist/${NAME}`)); }); gulp.task('package-compress', () => { return gulp.src(`./dist/${NAME}/**/*`, { base: './dist', encoding: false, }) .pipe(zip(`${NAME}.zip`)) .pipe(gulp.dest('./dist')); }); gulp.task( 'package', gulp.series( 'clean', 'package-copy', 'package-compress', 'clean-package-files' ) ); // Default Tasks gulp.task( 'default', gulp.series( 'clean', 'package' ) );