From a15d7d0b5dfde9fba4f9fb6af8154b6890ffeb96 Mon Sep 17 00:00:00 2001 From: Robin Cornett Date: Sun, 26 Mar 2023 18:07:53 -0400 Subject: [PATCH] Update build scripts --- gulp/config.js | 270 +++++++++++++++---------------- gulp/tasks/assets-shortcodes.js | 34 ++-- gulp/tasks/assets-sixtenpress.js | 18 +-- gulp/tasks/assets-slick.js | 18 +-- gulp/tasks/assets-tasks.js | 26 +-- gulp/tasks/assets-tgmpa.js | 18 +-- gulp/tasks/assets.js | 12 +- gulp/tasks/browser-sync.js | 34 ++-- gulp/tasks/build.js | 20 +-- gulp/tasks/clean.js | 18 +-- gulp/tasks/default.js | 10 +- gulp/tasks/js.js | 33 ++-- gulp/tasks/sass.js | 84 +++++----- gulp/tasks/translate.js | 36 ++--- gulp/tasks/watch.js | 18 +-- gulp/tasks/zip.js | 62 +++---- gulp/variables.js | 134 +++++++-------- gulpfile.js | 29 ++-- package.json | 47 +++--- 19 files changed, 471 insertions(+), 450 deletions(-) diff --git a/gulp/config.js b/gulp/config.js index f806c4a..45718a6 100644 --- a/gulp/config.js +++ b/gulp/config.js @@ -1,135 +1,135 @@ -/** - * The configuration file for gulp projects. - * This file should not be edited--project specific variables are stored in variables.js - */ -'use strict'; - -/** - * User defined variables - */ -var variables = require( './variables' ); - -/** - * Main source - * @type {string} - */ -var source = './'; - -/** - * Source for Sass files - * @type {string} - */ -var styleSource = source + 'sass/**/*.scss'; - -/** - * CSS destination folder - * themes: '' - * plugins: 'includes/css' - * @type {string} - */ -var styleDestination = source + ( 'theme' === variables.type ? '' : 'includes/css' ); - -/** - * Sass output style - * @type {string} - */ -var sassOutputStyle = '' !== variables.sassOutputStyle ? variables.sassOutputStyle : ( 'theme' === variables.type ? 'compact' : 'compressed' ); - -/** - * JS destination folder - * themes: 'js' - * plugins: 'includes/js' - * @type {string} - */ -var scriptDestination = 'theme' === variables.type ? 'js' : 'includes/js'; - -/** - * Source for javascript files - * @type {[*]} - */ -var scriptSource = [ - source + scriptDestination + '/**/*.js', - '!' + source + scriptDestination + '/**/*min.js' -]; - -/** - * Source for Bower files - * @type {string} - */ -var dependencySource = 'node_modules'; - -/** - * Source for Six/Ten Press files - * @type {[*]} - */ -var SixTenSource = [ - dependencySource + '/sixtenpress/includes/common/**.*', - dependencySource + '/sixtenpress/includes/common/**/*' -]; - -/** - * Destination for Six/Ten Press common files - * @type {string} - */ -var SixTenDestination = source + 'includes/common'; - -/** - * Source for language files. - * @type {string} - */ -var potSource = source + '**/*.php'; - -/** - * Destination for language files. - * @type {string} - */ -var potDestination = source + variables.languageFolder + '/'; - -/** - * The following should not be edited. - * @type {{projectName: string, version: string, paths: {sassPath: string, dependencyDir: string, sixten: string}, output: {style: string, destination: string}, destination: string, buildInclude: [*]}} - */ -module.exports = { - - projectName: variables.projectSlug, - projectTitle: variables.projectName, - version: variables.version, - root: source, - url: variables.url, - paths: { - sassPath: styleSource, - jsPath: scriptSource, - dependencyDir: dependencySource, - sixtenBower: SixTenSource, - potSource: potSource - }, - output: { - style: sassOutputStyle, - styleDestination: styleDestination, - scriptDestination: scriptDestination, - sixtenDestination: SixTenDestination, - potDestination: potDestination - }, - packages: variables.packages, - destination: variables.buildDestination, - buildInclude: [ - '**', - - // exclude: - '!node_modules/**/*', - '!bower_components/**/*', - '!sass/**/*', - '!dist/**/*', - '!node_modules', - '!bower_components', - '!sass', - '!dist', - '!gulpfile.js', - '!package.json', - '!package-lock.json', - '!bower.json', - '!gulp/**/*', - '!gulp', - '!yarn.lock' - ] -}; +/** + * The configuration file for gulp projects. + * This file should not be edited--project specific variables are stored in variables.js + */ +'use strict'; + +/** + * User defined variables + */ +var variables = require( './variables' ); + +/** + * Main source + * @type {string} + */ +var source = './'; + +/** + * Source for Sass files + * @type {string} + */ +var styleSource = source + 'sass/**/*.scss'; + +/** + * CSS destination folder + * themes: '' + * plugins: 'includes/css' + * @type {string} + */ +var styleDestination = source + ( 'theme' === variables.type ? '' : 'includes/css' ); + +/** + * Sass output style + * @type {string} + */ +var sassOutputStyle = '' !== variables.sassOutputStyle ? variables.sassOutputStyle : ( 'theme' === variables.type ? 'compact' : 'compressed' ); + +/** + * JS destination folder + * themes: 'js' + * plugins: 'includes/js' + * @type {string} + */ +var scriptDestination = 'theme' === variables.type ? 'js' : 'includes/js'; + +/** + * Source for javascript files + * @type {[*]} + */ +var scriptSource = [ + source + scriptDestination + '/**/*.js', + '!' + source + scriptDestination + '/**/*min.js' +]; + +/** + * Source for Bower files + * @type {string} + */ +var dependencySource = 'node_modules'; + +/** + * Source for Six/Ten Press files + * @type {[*]} + */ +var SixTenSource = [ + dependencySource + '/sixtenpress/includes/common/**.*', + dependencySource + '/sixtenpress/includes/common/**/*' +]; + +/** + * Destination for Six/Ten Press common files + * @type {string} + */ +var SixTenDestination = source + 'includes/common'; + +/** + * Source for language files. + * @type {string} + */ +var potSource = source + '**/*.php'; + +/** + * Destination for language files. + * @type {string} + */ +var potDestination = source + variables.languageFolder + '/'; + +/** + * The following should not be edited. + * @type {{projectName: string, version: string, paths: {sassPath: string, dependencyDir: string, sixten: string}, output: {style: string, destination: string}, destination: string, buildInclude: [*]}} + */ +module.exports = { + + projectName: variables.projectSlug, + projectTitle: variables.projectName, + version: variables.version, + root: source, + url: variables.url, + paths: { + sassPath: styleSource, + jsPath: scriptSource, + dependencyDir: dependencySource, + sixtenBower: SixTenSource, + potSource: potSource + }, + output: { + style: sassOutputStyle, + styleDestination: styleDestination, + scriptDestination: scriptDestination, + sixtenDestination: SixTenDestination, + potDestination: potDestination + }, + packages: variables.packages, + destination: variables.buildDestination, + buildInclude: [ + '**', + + // exclude: + '!node_modules/**/*', + '!bower_components/**/*', + '!sass/**/*', + '!dist/**/*', + '!node_modules', + '!bower_components', + '!sass', + '!dist', + '!gulpfile.js', + '!package.json', + '!package-lock.json', + '!bower.json', + '!gulp/**/*', + '!gulp', + '!yarn.lock' + ] +}; diff --git a/gulp/tasks/assets-shortcodes.js b/gulp/tasks/assets-shortcodes.js index ae35ba1..2e83c44 100644 --- a/gulp/tasks/assets-shortcodes.js +++ b/gulp/tasks/assets-shortcodes.js @@ -1,17 +1,17 @@ -/* - * Copyright (c) 2017 Robin Cornett - */ - -'use strict'; - -var gulp = require( 'gulp' ); - -gulp.task( 'assets-shortcodes', function () { - var config = require( '../config' ), - task_dir = config.paths.dependencyDir + '/sixtenpress-shortcodes/includes/**/*.*', - directions = config.paths.dependencyDir + '/sixtenpress-shortcodes/sixtenpress-shortcodes.php'; - gulp.src( directions ) - .pipe( gulp.dest( config.root + 'includes/shortcodes' ) ); - gulp.src( task_dir ) - .pipe( gulp.dest( config.root + 'includes/shortcodes/includes' ) ); -} ); +/* + * Copyright (c) 2017 Robin Cornett + */ + +'use strict'; + +var gulp = require( 'gulp' ); + +gulp.task( 'assets-shortcodes', function () { + var config = require( '../config' ), + task_dir = config.paths.dependencyDir + '/sixtenpress-shortcodes/includes/**/*.*', + directions = config.paths.dependencyDir + '/sixtenpress-shortcodes/sixtenpress-shortcodes.php'; + gulp.src( directions ) + .pipe( gulp.dest( config.root + 'includes/shortcodes' ) ); + gulp.src( task_dir ) + .pipe( gulp.dest( config.root + 'includes/shortcodes/includes' ) ); +} ); diff --git a/gulp/tasks/assets-sixtenpress.js b/gulp/tasks/assets-sixtenpress.js index 8e04a4b..be2b344 100644 --- a/gulp/tasks/assets-sixtenpress.js +++ b/gulp/tasks/assets-sixtenpress.js @@ -1,9 +1,9 @@ -'use strict'; - -var gulp = require( 'gulp' ); - -gulp.task( 'assets-sixtenpress', function () { - var config = require( '../config' ); - gulp.src( config.paths.sixtenBower ) - .pipe( gulp.dest( config.output.sixtenDestination ) ); -} ); +'use strict'; + +var gulp = require( 'gulp' ); + +gulp.task( 'assets-sixtenpress', function () { + var config = require( '../config' ); + gulp.src( config.paths.sixtenBower ) + .pipe( gulp.dest( config.output.sixtenDestination ) ); +} ); diff --git a/gulp/tasks/assets-slick.js b/gulp/tasks/assets-slick.js index 2702d4c..02a4e8a 100644 --- a/gulp/tasks/assets-slick.js +++ b/gulp/tasks/assets-slick.js @@ -1,9 +1,9 @@ -'use strict'; - -var gulp = require( 'gulp' ); - -gulp.task( 'assets-slick', function () { - var config = require( '../config' ); - return gulp.src( config.paths.dependencyDir + '/slick-carousel/slick/**.js' ) - .pipe( gulp.dest( config.output.scriptDestination ) ); -} ); +'use strict'; + +var gulp = require( 'gulp' ); + +gulp.task( 'assets-slick', function () { + var config = require( '../config' ); + return gulp.src( config.paths.dependencyDir + '/slick-carousel/slick/**.js' ) + .pipe( gulp.dest( config.output.scriptDestination ) ); +} ); diff --git a/gulp/tasks/assets-tasks.js b/gulp/tasks/assets-tasks.js index 2a57695..54a2a74 100644 --- a/gulp/tasks/assets-tasks.js +++ b/gulp/tasks/assets-tasks.js @@ -1,13 +1,13 @@ -'use strict'; - -var gulp = require( 'gulp' ); - -gulp.task( 'assets-tasks', function () { - var config = require( '../config' ), - task_dir = config.paths.dependencyDir + '/gulp-tasks/gulp/tasks/*.*', - directions = config.paths.dependencyDir + '/gulp-tasks/gulp/config.js'; - gulp.src( directions ) - .pipe( gulp.dest( config.root + 'gulp' ) ); - gulp.src( task_dir ) - .pipe( gulp.dest( config.root + 'gulp/tasks' ) ); -} ); +'use strict'; + +var gulp = require( 'gulp' ); + +gulp.task( 'assets-tasks', function () { + var config = require( '../config' ), + task_dir = config.paths.dependencyDir + '/gulp-tasks/gulp/tasks/*.*', + directions = config.paths.dependencyDir + '/gulp-tasks/gulp/config.js'; + gulp.src( directions ) + .pipe( gulp.dest( config.root + 'gulp' ) ); + gulp.src( task_dir ) + .pipe( gulp.dest( config.root + 'gulp/tasks' ) ); +} ); diff --git a/gulp/tasks/assets-tgmpa.js b/gulp/tasks/assets-tgmpa.js index b62de46..80672d5 100644 --- a/gulp/tasks/assets-tgmpa.js +++ b/gulp/tasks/assets-tgmpa.js @@ -1,9 +1,9 @@ -'use strict'; - -var gulp = require( 'gulp' ); - -gulp.task( 'assets-tgmpa', function () { - var config = require( '../config' ); - return gulp.src( config.paths.dependencyDir + '/tgmpa/class-tgm-plugin-activation.php' ) - .pipe( gulp.dest( config.root ) ); -} ); +'use strict'; + +var gulp = require( 'gulp' ); + +gulp.task( 'assets-tgmpa', function () { + var config = require( '../config' ); + return gulp.src( config.paths.dependencyDir + '/tgmpa/class-tgm-plugin-activation.php' ) + .pipe( gulp.dest( config.root ) ); +} ); diff --git a/gulp/tasks/assets.js b/gulp/tasks/assets.js index 096b550..e3f883c 100644 --- a/gulp/tasks/assets.js +++ b/gulp/tasks/assets.js @@ -1,6 +1,6 @@ -'use strict'; - -var gulp = require( 'gulp' ), - config = require( '../config' ); - -gulp.task( 'assets', config.packages ); +'use strict'; + +var gulp = require( 'gulp' ), + config = require( '../config' ); + +gulp.task( 'assets', config.packages ); diff --git a/gulp/tasks/browser-sync.js b/gulp/tasks/browser-sync.js index ce85663..939808f 100644 --- a/gulp/tasks/browser-sync.js +++ b/gulp/tasks/browser-sync.js @@ -1,17 +1,17 @@ -'use strict'; - -var gulp = require( 'gulp' ); - -gulp.task( 'browserSync', function () { - - var browserSync = require( 'browser-sync' ).create(), - config = require( '../config' ), - files = [ - config.output.styleDestination + '**/*.css', - config.output.scriptDestination + '**/*.js' - ]; - browserSync.init( files, { - proxy: config.url, - injectChanges: true - } ) -} ); +'use strict'; + +var gulp = require( 'gulp' ); + +gulp.task( 'browserSync', function () { + + var browserSync = require( 'browser-sync' ).create(), + config = require( '../config' ), + files = [ + config.output.styleDestination + '**/*.css', + config.output.scriptDestination + '**/*.js' + ]; + browserSync.init( files, { + proxy: config.url, + injectChanges: true + } ) +} ); diff --git a/gulp/tasks/build.js b/gulp/tasks/build.js index f4ea148..a85ab51 100644 --- a/gulp/tasks/build.js +++ b/gulp/tasks/build.js @@ -1,10 +1,10 @@ -'use strict'; - -var gulp = require( 'gulp' ); - -gulp.task( 'build', [ - 'sass', - 'js', - 'translate', - 'zip' -] ); +'use strict'; + +var gulp = require( 'gulp' ); + +gulp.task( 'build', [ + 'sass', + 'js', + 'translate', + 'zip' +] ); diff --git a/gulp/tasks/clean.js b/gulp/tasks/clean.js index 2feb8c3..27b7fe7 100644 --- a/gulp/tasks/clean.js +++ b/gulp/tasks/clean.js @@ -1,9 +1,9 @@ -'use strict'; - -var gulp = require( 'gulp' ); - -gulp.task( 'clean', function () { - var del = require( 'del' ), - config = require( '../config' ); - return del( [ config.destination ] ); -} ); +'use strict'; + +var gulp = require( 'gulp' ); + +gulp.task( 'clean', function () { + var del = require( 'del' ), + config = require( '../config' ); + return del( [ config.destination ] ); +} ); diff --git a/gulp/tasks/default.js b/gulp/tasks/default.js index 32b8fdd..6a7b6d9 100644 --- a/gulp/tasks/default.js +++ b/gulp/tasks/default.js @@ -1,5 +1,5 @@ -'use strict'; - -var gulp = require( 'gulp' ); - -gulp.task( 'default', ['js', 'sass', 'translate', 'watch'] ); +'use strict'; + +var gulp = require( 'gulp' ); + +gulp.task( 'default', ['js', 'sass', 'translate', 'watch'] ); diff --git a/gulp/tasks/js.js b/gulp/tasks/js.js index 8e5ae7c..4434506 100644 --- a/gulp/tasks/js.js +++ b/gulp/tasks/js.js @@ -1,16 +1,17 @@ -'use strict'; - -var gulp = require( 'gulp' ); - -gulp.task( 'js', function () { - - var uglify = require( 'gulp-uglify-es' ).default, - rename = require( 'gulp-rename' ), - config = require( '../config' ); - gulp.src( config.paths.jsPath ) - .pipe( uglify() ) - .pipe( rename( { - extname: '.min.js' - } ) ) - .pipe( gulp.dest( config.output.scriptDestination ) ); -} ); +'use strict'; + +var gulp = require( 'gulp' ); + +gulp.task( 'js', () => { + + var uglify = require( 'gulp-uglify-es' ).default, + rename = require( 'gulp-rename' ), + config = require( '../config' ); + + return gulp.src( config.paths.jsPath ) + .pipe( uglify() ) + .pipe( rename( { + extname: '.min.js' + } ) ) + .pipe( gulp.dest( config.output.scriptDestination ) ); +} ); diff --git a/gulp/tasks/sass.js b/gulp/tasks/sass.js index bcd52d7..31d19c4 100644 --- a/gulp/tasks/sass.js +++ b/gulp/tasks/sass.js @@ -1,41 +1,43 @@ -'use strict'; - -var gulp = require( 'gulp' ); - -gulp.task( 'sass', function () { - - var autoprefixer = require( 'autoprefixer' ), - postcss = require( 'gulp-postcss' ), - sass = require( 'gulp-sass' ), - notify = require( 'gulp-notify' ), - atImport = require( 'postcss-import' ), - mqpacker = require( 'css-mqpacker' ), - config = require( '../config' ), - perfectionist = require( 'perfectionist' ), - browserSync = require( 'browser-sync' ), - processors = [ - atImport, - autoprefixer( { - cascade: false, - remove: false - } ), - mqpacker( {sort: true} ), - perfectionist( { - cascade: true, - format: config.output.style, - indentSize: 4, - maxAtRuleLength: 80, - maxSelectorLength: 80, - maxValueLength: 80, - sourcemap: true - } ) - ]; - gulp.src( config.paths.sassPath ) - .pipe( sass( {outputStyle: config.output.style} ).on( 'error', sass.logError ) ) - .pipe( postcss( processors ) ) - .pipe( gulp.dest( config.output.styleDestination ) ) - .pipe( browserSync.reload( { - stream: true - } ) ) - .pipe( notify( {message: 'you sassed the shit out of that.', onLast: true} ) ); -} ); +'use strict'; + +var gulp = require( 'gulp' ); + +gulp.task( 'sass', () => { + + var autoprefixer = require( 'autoprefixer' ), + postcss = require( 'gulp-postcss' ), + sass = require( 'gulp-sass' )( require( 'sass' ) ), + sassunicode = require( 'gulp-sass-unicode' ), + notify = require( 'gulp-notify' ), + atImport = require( 'postcss-import' ), + mqpacker = require( 'css-mqpacker' ), + config = require( '../config' ), + perfectionist = require( 'perfectionist' ), + browserSync = require( 'browser-sync' ), + processors = [ + atImport, + autoprefixer( { + cascade: false, + remove: false + } ), + mqpacker( { sort: true } ), + perfectionist( { + cascade: true, + format: config.output.style, + indentSize: 4, + maxAtRuleLength: 80, + maxSelectorLength: 80, + maxValueLength: 80, + sourcemap: true + } ) + ]; + return gulp.src( config.paths.sassPath ) + .pipe( sass( { outputStyle: config.output.style } ).on( 'error', sass.logError ) ) + .pipe( sassunicode() ) + .pipe( postcss( processors ) ) + .pipe( gulp.dest( config.output.styleDestination ) ) + .pipe( browserSync.reload( { + stream: true + } ) ) + .pipe( notify( { message: 'you sassed the shit out of that.', onLast: true } ) ); +} ); diff --git a/gulp/tasks/translate.js b/gulp/tasks/translate.js index 20d2c74..b15d46d 100644 --- a/gulp/tasks/translate.js +++ b/gulp/tasks/translate.js @@ -1,18 +1,18 @@ -'use strict'; - -var gulp = require( 'gulp' ); - -gulp.task( 'translate', function () { - - var pot = require( 'gulp-wp-pot' ), - config = require( '../config' ); - - gulp.src( [config.paths.potSource] ) - .pipe( pot( { - domain: config.projectName, - package: config.projectTitle, - headers: false - } ) ) - .pipe( gulp.dest( config.output.potDestination + config.projectName + '.pot' ) ); - -} ); +'use strict'; + +var gulp = require( 'gulp' ); + +gulp.task( 'translate', () => { + + var pot = require( 'gulp-wp-pot' ), + config = require( '../config' ); + + return gulp.src( [ config.paths.potSource ] ) + .pipe( pot( { + domain: config.projectName, + package: config.projectTitle, + headers: false + } ) ) + .pipe( gulp.dest( config.output.potDestination + config.projectName + '.pot' ) ); + +} ); diff --git a/gulp/tasks/watch.js b/gulp/tasks/watch.js index a303a6f..50814d7 100644 --- a/gulp/tasks/watch.js +++ b/gulp/tasks/watch.js @@ -1,9 +1,9 @@ -'use strict'; - -var gulp = require( 'gulp' ); - -gulp.task( 'watch', ['sass','browserSync'], function () { - var config = require( '../config' ); - gulp.watch( config.paths.jsPath, ['js'] ); - gulp.watch( config.paths.sassPath, ['sass'] ); -} ); +'use strict'; + +var gulp = require( 'gulp' ); + +gulp.task( 'watch', ['sass','browserSync'], function () { + var config = require( '../config' ); + gulp.watch( config.paths.jsPath, ['js'] ); + gulp.watch( config.paths.sassPath, ['sass'] ); +} ); diff --git a/gulp/tasks/zip.js b/gulp/tasks/zip.js index e875ba5..897712a 100644 --- a/gulp/tasks/zip.js +++ b/gulp/tasks/zip.js @@ -1,31 +1,31 @@ -'use strict'; - -var gulp = require( 'gulp' ); - -gulp.task( 'zip' , function () { - - var chmod = require( 'gulp-chmod' ), - zip = require( 'gulp-zip' ), - config = require( '../config' ); - - return gulp.src( config.buildInclude, { base: '../' } ) - .pipe( chmod( { - owner: { - read: true, - write: true, - execute: true - }, - group: { - read: true, - write: false, - execute: true - }, - others: { - read: true, - write: false, - execute: true - } - }, true ) ) - .pipe( zip( config.projectName + '.' + config.version + '.zip' ) ) - .pipe( gulp.dest( config.destination ) ); -} ); +'use strict'; + +var gulp = require( 'gulp' ); + +gulp.task( 'zip', () => { + + var chmod = require( 'gulp-chmod' ), + zip = require( 'gulp-zip' ), + config = require( '../config' ); + + return gulp.src( config.buildInclude, { base: '../' } ) + .pipe( chmod( { + owner: { + read: true, + write: true, + execute: true + }, + group: { + read: true, + write: false, + execute: true + }, + others: { + read: true, + write: false, + execute: true + } + }, true ) ) + .pipe( zip( config.projectName + '.' + config.version + '.zip' ) ) + .pipe( gulp.dest( config.destination ) ); +} ); diff --git a/gulp/variables.js b/gulp/variables.js index 1a4bf78..7b5eb46 100644 --- a/gulp/variables.js +++ b/gulp/variables.js @@ -1,67 +1,67 @@ -/** - * Use this file to define unique project details. - */ - -'use strict'; - -var project = require( '../package.json' ); - -module.exports = { - - /** - * The project slug (folder) - */ - projectSlug: project.name, - - /** - * The project's proper name - */ - projectName: project.description, - - /** - * Current project version - */ - version: project.version, - - /** - * Type of project (plugin/theme) - */ - type: 'plugin', - - /** - * Preferred languages folder - */ - languageFolder: 'languages', - - /** - * Local Development URL (for BrowserSync) - */ - url: 'local.wordpress-trunk.test', - - /** - * If blank, will be compact for themes, compressed for plugins. - * Define this manually to override (expanded, compact, compressed, nested) - */ - sassOutputStyle: '', - - /** - * Array of assets/packages for importing into project. - * Current packages available: 'assets-shortcodes', - * 'assets-sixtenpress', - * 'assets-slick', - * 'assets-tasks', - * 'assets-tgmpa' - */ - packages: [ - // 'assets-shortcodes', - // 'assets-sixtenpress', - // 'assets-slick', - // 'assets-tasks', - // 'assets-tgmpa' - ], - - /** - * Destination folder for project zip archives. - */ - buildDestination: '../../build' -}; +/** + * Use this file to define unique project details. + */ + +'use strict'; + +var project = require( '../package.json' ); + +module.exports = { + + /** + * The project slug (folder) + */ + projectSlug: project.name, + + /** + * The project's proper name + */ + projectName: project.description, + + /** + * Current project version + */ + version: project.version, + + /** + * Type of project (plugin/theme) + */ + type: 'plugin', + + /** + * Preferred languages folder + */ + languageFolder: 'languages', + + /** + * Local Development URL (for BrowserSync) + */ + url: 'https://local.five.test', + + /** + * If blank, will be compact for themes, compressed for plugins. + * Define this manually to override (expanded, compact, compressed, nested) + */ + sassOutputStyle: '', + + /** + * Array of assets/packages for importing into project. + * Current packages available: 'assets-shortcodes', + * 'assets-sixtenpress', + * 'assets-slick', + * 'assets-tasks', + * 'assets-tgmpa' + */ + packages: [ + // 'assets-shortcodes', + // 'assets-sixtenpress', + // 'assets-slick', + // 'assets-tasks', + // 'assets-tgmpa' + ], + + /** + * Destination folder for project zip archives. + */ + buildDestination: '../../build' +}; diff --git a/gulpfile.js b/gulpfile.js index 1f7ca02..cb1f67b 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,10 +1,19 @@ -/** - * gulpfile.js - */ -'use strict'; - -var gulp = require( 'gulp' ); -var requireDir = require( 'require-dir' ); - -// Require all tasks in gulp/tasks, including subfolders -requireDir( './gulp/tasks', { recurse: true } ); +/** + * gulpfile.js + */ +'use strict'; + +var gulp = require( 'gulp' ); + +function getTask ( task ) { + var taskDir = './gulp/tasks/' + task; + + return require( taskDir ); +} + +var tasks = [ 'sass', 'js', 'translate', 'zip' ]; +for ( var index in tasks ) { + getTask( tasks[ index ] ); +} + +gulp.task( 'build', gulp.series( [ 'sass', 'js', 'translate', 'zip' ] ) ); diff --git a/package.json b/package.json index f5ea299..f665c91 100644 --- a/package.json +++ b/package.json @@ -3,30 +3,39 @@ "description": "Display Featured Image for Genesis", "version": "3.2.2", "private": true, - "license": "GPL-2.0", + "license": "GPL-2.0+", "devDependencies": { - "autoprefixer": "9.7.0", - "browser-sync": "2.26.7", + "autoprefixer": "10.4.13", + "browser-sync": "2.27.11", "css-mqpacker": "7.0.0", - "del": "^5.1.0", - "gulp": "^3.9.1", - "gulp-chmod": "^3.0.0", - "gulp-notify": "^3.2.0", - "gulp-postcss": "^8.0.0", - "gulp-rename": "^1.4.0", - "gulp-sass": "^4.0.1", + "del": "7.0.0", + "gulp": "^4.0.2", + "gulp-chmod": "3.0.0", + "gulp-notify": "4.0.0", + "gulp-postcss": "9.0.1", + "gulp-rename": "2.0.0", + "gulp-sass": "5.1.0", "gulp-uglify": "3.0.2", - "gulp-uglify-es": "^2.0.0", - "gulp-wp-pot": "^2.3.5", - "gulp-zip": "^5.0.1", + "gulp-uglify-es": "3.0.0", + "gulp-wp-pot": "^2.3.2", + "gulp-zip": "5.1.0", "perfectionist": "^2.4.0", - "postcss-import": "12.0.1", - "require-dir": "1.2.0" + "postcss": "^8.4.4", + "postcss-import": "15.1.0", + "sass": "^1.41.1" + }, + "dependencies": { + "@wordpress/browserslist-config": "5.7.0", + "glob-parent": ">=5.1.2", + "gulp-sass-unicode": "^1.0.5", + "gulp-svg-sprites": "^4.1.2", + "normalize.css": "8.0.1", + "trim-newlines": ">=3.0.1", + "set-value": ">=4.0.1", + "axios": ">=0.24.0", + "nth-check": ">=2.0.1" }, "browserslist": [ "extends @wordpress/browserslist-config" - ], - "dependencies": { - "@wordpress/browserslist-config": "^2.6.0" - } + ] }