From 8f36bab2367ad792559750833722fa3690db75d8 Mon Sep 17 00:00:00 2001 From: Alison Monteiro Date: Sun, 4 Dec 2016 22:10:39 -0300 Subject: [PATCH 1/4] refactor(gulp): using some es6 and making some refactoring --- gulpfile.js | 126 +++++++++++++++++++++++----------------------------- 1 file changed, 55 insertions(+), 71 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 13ba09a..bfdc52b 100755 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,83 +1,67 @@ -// Modules -// --------------------------------------------------------- // -var gulp = require('gulp'), - gulpsync = require('gulp-sync')(gulp), - requireDir = require('require-dir'), - packageJson = require('./package.json'); +const gulp = require('gulp'); +const gulpSync = require('gulp-sync')(gulp); +const requireDir = require('require-dir'); +const packageJson = require('./package.json'); - -// Config & Paths -// --------------------------------------------------------- // -gulp.config = { - packageJson: packageJson, - compressed: true, - format: packageJson.projectFormat ? packageJson.projectFormat : 'default', - localhost: 'localhost', - port: '3000' +const baseConfig = { + port: '3000', + localhost: 'localhost', + packageJson: packageJson, + format: packageJson.projectFormat ? packageJson.projectFormat : 'default', + compressed: true }; -// Paths -gulp.paths = { - default: - { - basePath: 'www/', - scripts: 'src/js/**/*.js', - scriptsDest: 'www/js', - styles: 'src/css/**/*.sass', - stylesDest: 'www/css', - images: 'src/images/**/*.*', - imagesDest: 'www/images', - pages: 'src/**/*.php', - pagesDest: 'www/', - fonts: 'src/fonts/**/*.*', - fontsDest: 'www/fonts' - }, - wordpress: - { - basePath: 'wordpress/', - scripts: 'src/js/**/*.js', - scriptsDest: 'wordpress/wp-content/themes/'+packageJson.name+'/js', - styles: 'src/css/**/*.sass', - stylesDest: 'wordpress/wp-content/themes/'+packageJson.name+'/css', - images: 'src/images/**/*.*', - imagesDest: 'wordpress/wp-content/themes/'+packageJson.name+'/images', - pages: 'src/**/*.php', - pagesDest: 'wordpress/wp-content/themes/'+packageJson.name, - fonts: 'src/fonts/**/*.*', - fontsDest: 'wordpress/wp-content/themes/'+packageJson.name+'/fonts', - pluginsWp: 'plugins/**/*.*', - themesWp: 'wordpress/wp-content/themes/', - styleWp: 'src/style.css', - configWp: 'wp-config.php' - } +const wpThemePath = 'wordpress/wp-content/themes/' + packageJson.name; +const paths = { + default: { + basePath: 'www/', + pagesDest: 'www/', + stylesDest: 'www/css', + fontsDest: 'www/fonts', + imagesDest: 'www/images', + scriptsDest: 'www/js' + }, + wordpress: { + basePath: 'wordpress/', + pluginsWp: 'plugins/**/*.*', + styleWp: 'src/style.css', + configWp: 'wp-config.php', + pagesDest: wpThemePath, + fontsDest: wpThemePath + '/fonts', + imagesDest: wpThemePath + '/images', + stylesDest: wpThemePath + '/css', + scriptsDest: wpThemePath + '/js', + themesWp: 'wordpress/wp-content/themes/' + } }; -gulp.paths = gulp.paths[gulp.config.format]; +const devPaths = { + pages: 'src/**/*.php', + scripts: 'src/js/**/*.js', + styles: 'src/css/**/*.sass', + images: 'src/images/**/*.*', + fonts: 'src/fonts/**/*.*' +}; +gulp.paths = Object.assign(devPaths, paths[baseConfig.format]); +gulp.config = baseConfig; -// Tasks -// --------------------------------------------------------- // +// Gulp tasks requireDir('gulp_tasks'); -// Watch -// --------------------------------------------------------- // -gulp.task('watch',function(){ - gulp.watch(gulp.paths.styles, ['styles']); - gulp.watch(gulp.paths.scripts, ['scripts']); - gulp.watch(gulp.paths.pages, ['pages']); - gulp.watch(gulp.paths.images, ['images']); - gulp.watch(gulp.paths.fonts, ['fonts']); - gulp.watch(gulp.paths.fonts, ['fonts']); -}); +gulp.task('default', gulpSync.sync(['build', 'watch', 'connect-sync'])); -// Default -var defautTasks = ['build', 'watch', 'connect-sync']; -gulp.task('default', gulpsync.sync(defautTasks)); +gulp.task('wp', gulpSync.sync(['wp-install'])); -// Install wp -var installWpTasks = ['wp-install']; -gulp.task('wp', gulpsync.sync(installWpTasks)); +gulp.task('build', gulpSync.sync([ + 'clean', 'styles', 'scripts', 'pages', 'images', 'fonts', 'libs' +])); -// Build -var buildTasks = ['clean', 'styles', 'scripts', 'pages', 'images', 'fonts', 'libs']; -gulp.task('build', gulpsync.sync(buildTasks)); +gulp.task('watch', function() { + gulp.watch(gulp.paths.styles, ['styles']); + gulp.watch(gulp.paths.scripts, ['scripts']); + gulp.watch(gulp.paths.pages, ['pages']); + gulp.watch(gulp.paths.images, ['images']); + gulp.watch(gulp.paths.fonts, ['fonts']); + gulp.watch(gulp.paths.fonts, ['fonts']); +}); \ No newline at end of file From 4034e3a9760d5800fb0890eb0b77646afdc30afb Mon Sep 17 00:00:00 2001 From: Alison Monteiro Date: Sun, 4 Dec 2016 23:16:23 -0300 Subject: [PATCH 2/4] refactor(gulp): applying .editorconfig pattern on gulp tasks * using tabs instead of spaces plus: using more es6 :tada: --- gulp_tasks/browser-sync.js | 15 +++-- gulp_tasks/clean.js | 9 +-- gulp_tasks/connect-sync.js | 27 ++++----- gulp_tasks/fonts.js | 13 ++--- gulp_tasks/images.js | 22 +++----- gulp_tasks/init.js | 8 +-- gulp_tasks/libs.js | 93 +++++++++++++++---------------- gulp_tasks/pages.js | 29 +++++----- gulp_tasks/reload.js | 9 +-- gulp_tasks/scripts.js | 25 ++++----- gulp_tasks/set-format.js | 12 ++-- gulp_tasks/styles.js | 56 +++++++++---------- gulp_tasks/wp-build.js | 32 +++++------ gulp_tasks/wp-install.js | 109 +++++++++++++++++++------------------ 14 files changed, 218 insertions(+), 241 deletions(-) diff --git a/gulp_tasks/browser-sync.js b/gulp_tasks/browser-sync.js index cfa96af..910aa5f 100755 --- a/gulp_tasks/browser-sync.js +++ b/gulp_tasks/browser-sync.js @@ -1,11 +1,10 @@ -var gulp = require('gulp'), - browserSync = require('browser-sync'); +const gulp = require('gulp'); +const browserSync = require('browser-sync'); -// Browser Sync gulp.task('browser-sync', function() { - browserSync({ - server: { - baseDir: gulp.paths.basePath - } - }); + browserSync({ + server: { + baseDir: gulp.paths.basePath + } + }); }); diff --git a/gulp_tasks/clean.js b/gulp_tasks/clean.js index 68f110b..24cb97c 100755 --- a/gulp_tasks/clean.js +++ b/gulp_tasks/clean.js @@ -1,7 +1,4 @@ -var gulp = require('gulp'), - del = require('del'); +const gulp = require('gulp'); +const del = require('del'); -// Clean -gulp.task('clean', function() { - return del(gulp.paths.pagesDest); -}); +gulp.task('clean', () => del(gulp.paths.pagesDest)); \ No newline at end of file diff --git a/gulp_tasks/connect-sync.js b/gulp_tasks/connect-sync.js index db38c7d..c850e70 100755 --- a/gulp_tasks/connect-sync.js +++ b/gulp_tasks/connect-sync.js @@ -1,16 +1,17 @@ -var gulp = require('gulp'), - connect = require('gulp-connect-php'), - browserSync = require('browser-sync'); +const gulp = require('gulp'); +const connect = require('gulp-connect-php'); +const browserSync = require('browser-sync'); -// Connect Sync gulp.task('connect-sync', function() { - connect.server({ - port: gulp.config.port, - base: gulp.paths.basePath, - livereload: true - }, function (){ - browserSync({ - proxy: gulp.config.localhost+':'+gulp.config.port - }); - }); + const serverConfig = { + base: gulp.paths.basePath, + port: gulp.config.port, + livereload: true + }; + + connect.server(serverConfig, function () { + browserSync({ + proxy: gulp.config.localhost + ':' + gulp.config.port + }); + }); }); diff --git a/gulp_tasks/fonts.js b/gulp_tasks/fonts.js index bb5d541..c6876c7 100755 --- a/gulp_tasks/fonts.js +++ b/gulp_tasks/fonts.js @@ -1,9 +1,8 @@ -var gulp = require('gulp'), - browserSync = require('browser-sync'); +const gulp = require('gulp'); +const browserSync = require('browser-sync'); -// Fonts -gulp.task('fonts', function(){ - gulp.src(gulp.paths.fonts) - .pipe(gulp.dest(gulp.paths.fontsDest)) - .pipe(browserSync.reload({stream:true})); +gulp.task('fonts', function() { + return gulp.src(gulp.paths.fonts) + .pipe(gulp.dest(gulp.paths.fontsDest)) + .pipe(browserSync.reload({stream: true})); }); diff --git a/gulp_tasks/images.js b/gulp_tasks/images.js index 639f468..423000c 100755 --- a/gulp_tasks/images.js +++ b/gulp_tasks/images.js @@ -1,17 +1,11 @@ -var gulp = require('gulp'), - plumber = require('gulp-plumber'), - cache = require('gulp-cache'), - imagemin = require('gulp-imagemin'), - browserSync = require('browser-sync'); +const gulp = require('gulp'); +const plumber = require('gulp-plumber'); +const cache = require('gulp-cache'); +const imagemin = require('gulp-imagemin'); +const browserSync = require('browser-sync'); -// Images gulp.task('images', function() { - return gulp.src(gulp.paths.images) - .pipe(cache(imagemin({ - optimizationLevel: 3, - progressive: true, - interlaced: true - }))) - .pipe(gulp.dest(gulp.paths.imagesDest)) - .pipe(browserSync.reload({stream:true})); + return gulp.src(gulp.paths.images) + .pipe(gulp.dest(gulp.paths.imagesDest)) + .pipe(browserSync.reload({stream: true})); }); diff --git a/gulp_tasks/init.js b/gulp_tasks/init.js index e70e752..bcb4fae 100644 --- a/gulp_tasks/init.js +++ b/gulp_tasks/init.js @@ -1,15 +1,13 @@ -var gulp = require('gulp'), - helper = require('./helpers'), - args = process.argv; +const gulp = require('gulp'); +const helper = require('./helpers'); +const args = process.argv; -// Init gulp.task('init', function() { var projectName = ''; var projectNameIndex = args.indexOf('--p'); if (projectNameIndex !== -1) { projectName = args.slice(projectNameIndex + 1); - helper.rewriteProjectName(projectName.join(' ')); } else { helper.log('Please, give us a project name using the `--p` param.', 'danger'); diff --git a/gulp_tasks/libs.js b/gulp_tasks/libs.js index 0ff5da7..1cbfe0f 100755 --- a/gulp_tasks/libs.js +++ b/gulp_tasks/libs.js @@ -1,56 +1,53 @@ -var gulp = require('gulp'), - plumber = require('gulp-plumber'), - gulpFilter = require('gulp-filter'), - mainBowerFiles = require('gulp-main-bower-files'), - concat = require('gulp-concat'), - rename = require('gulp-rename'), - uglify = require('gulp-uglify'), - cleanCss = require('gulp-clean-css'), - flatten = require('gulp-flatten'), - browserSync = require('browser-sync'); +const gulp = require('gulp'); +const plumber = require('gulp-plumber'); +const gulpFilter = require('gulp-filter'); +const mainBowerFiles = require('gulp-main-bower-files'); +const concat = require('gulp-concat'); +const rename = require('gulp-rename'); +const uglify = require('gulp-uglify'); +const cleanCss = require('gulp-clean-css'); +const flatten = require('gulp-flatten'); +const browserSync = require('browser-sync'); -// Libs gulp.task('libs', function() { + const fontsExtensions = ['**/*.eot', '**/*.woff' , '**/*.woff2' , '**/*.svg', '**/*.ttf']; - var jsFilter = gulpFilter('**/*.js', {restore: true}); - var cssFilter = gulpFilter('**/*.css', {restore: true}); - var fontFilter = gulpFilter(['**/*.eot', '**/*.woff' , '**/*.woff2' , '**/*.svg', '**/*.ttf'], {restore: true}); + const jsFilter = gulpFilter('**/*.js', {restore: true}); + const cssFilter = gulpFilter('**/*.css', {restore: true}); + const fontFilter = gulpFilter(fontsExtensions, {restore: true}); - return gulp.src('./bower.json') - .pipe(mainBowerFiles({ - "overrides": { - "font-awesome": { - "main": [ - './css/font-awesome.min.css', - './fonts/*.*' - ] - } - } - })) - .pipe(plumber({ - errorHandler: function (error) { - console.log(error.message); - this.emit('end'); - }})) + return gulp.src('./bower.json') + .pipe(mainBowerFiles({ + "overrides": { + "font-awesome": { + "main": ['./css/font-awesome.min.css', './fonts/*.*'] + } + } + })) + .pipe(plumber({ + errorHandler: error => { + console.log(error.message); + this.emit('end'); + } + })) - // JS - .pipe(jsFilter) - .pipe(concat('libs.js')) - .pipe(rename({suffix: ".min"})) - .pipe(uglify()) - .pipe(gulp.dest(gulp.paths.scriptsDest)) - .pipe(jsFilter.restore) + // JS + .pipe(jsFilter) + .pipe(concat('libs.js')) + .pipe(rename({suffix: ".min"})) + .pipe(uglify()) + .pipe(gulp.dest(gulp.paths.scriptsDest)) + .pipe(jsFilter.restore) - //CSS - .pipe(cssFilter) - .pipe(cleanCss({compatibility: 'ie8'})) - .pipe(concat('libs.min.css')) - .pipe(gulp.dest(gulp.paths.stylesDest)) - .pipe(cssFilter.restore) - - // Fonts - .pipe(fontFilter) - .pipe(flatten()) - .pipe(gulp.dest(gulp.paths.fontsDest)); + //CSS + .pipe(cssFilter) + .pipe(cleanCss({compatibility: 'ie8'})) + .pipe(concat('libs.min.css')) + .pipe(gulp.dest(gulp.paths.stylesDest)) + .pipe(cssFilter.restore) + // Fonts + .pipe(fontFilter) + .pipe(flatten()) + .pipe(gulp.dest(gulp.paths.fontsDest)); }); diff --git a/gulp_tasks/pages.js b/gulp_tasks/pages.js index 03d38af..28e8834 100755 --- a/gulp_tasks/pages.js +++ b/gulp_tasks/pages.js @@ -1,18 +1,15 @@ -var gulp = require('gulp'), - plumber = require('gulp-plumber'), - browserSync = require('browser-sync'); - -// Pages -gulp.task('pages', function(){ +const gulp = require('gulp'); +const plumber = require('gulp-plumber'); +const browserSync = require('browser-sync'); - return gulp.src(gulp.paths.pages) - .pipe(plumber({ - errorHandler: function (error) { - console.log(error.message); - this.emit('end'); - }})) - .pipe(gulp.dest(gulp.paths.pagesDest)) - .pipe(browserSync.reload({stream:true})); - - browserSync.reload(); +gulp.task('pages', function() { + return gulp.src(gulp.paths.pages) + .pipe(plumber({ + errorHandler: error => { + console.log(error.message); + this.emit('end'); + } + })) + .pipe(gulp.dest(gulp.paths.pagesDest)) + .pipe(browserSync.reload({stream: true})); }); diff --git a/gulp_tasks/reload.js b/gulp_tasks/reload.js index 7de5b09..6df51a3 100755 --- a/gulp_tasks/reload.js +++ b/gulp_tasks/reload.js @@ -1,7 +1,4 @@ -var gulp = require('gulp'), - browserSync = require('browser-sync'); +const gulp = require('gulp'); +const browserSync = require('browser-sync'); -// Reload -gulp.task('reload', function () { - browserSync.reload(); -}); +gulp.task('reload', () => browserSync.reload()); diff --git a/gulp_tasks/scripts.js b/gulp_tasks/scripts.js index d9796f8..5fa58e2 100755 --- a/gulp_tasks/scripts.js +++ b/gulp_tasks/scripts.js @@ -1,18 +1,17 @@ -var gulp = require('gulp'), - plumber = require('gulp-plumber'), - rename = require('gulp-rename'), - uglify = require('gulp-uglify'), - concat = require('gulp-concat'), - sourcemaps = require('gulp-sourcemaps'), - jshint = require('gulp-jshint'), - babel = require('gulp-babel'), - browserSync = require('browser-sync'); +const gulp = require('gulp'); +const plumber = require('gulp-plumber'); +const rename = require('gulp-rename'); +const uglify = require('gulp-uglify'); +const concat = require('gulp-concat'); +const sourcemaps = require('gulp-sourcemaps'); +const jshint = require('gulp-jshint'); +const babel = require('gulp-babel'); +const browserSync = require('browser-sync'); -// Scripts gulp.task('scripts', function() { return gulp.src(gulp.paths.scripts) .pipe(plumber({ - errorHandler: function(error) { + errorHandler: error => { console.log(error.message); this.emit('end'); } @@ -31,9 +30,7 @@ gulp.task('scripts', function() { .pipe(uglify()) .pipe(rename({suffix: '.min'})) .pipe(sourcemaps.write('.', { - mapFile: function(mapFilePath) { - return mapFilePath.replace('.js.map', '.map'); - } + mapFile: mapFilePath => mapFilePath.replace('.js.map', '.map') })) .pipe(gulp.dest(gulp.paths.scriptsDest)) .pipe(browserSync.reload({stream: true})) diff --git a/gulp_tasks/set-format.js b/gulp_tasks/set-format.js index 6914643..d9a145a 100644 --- a/gulp_tasks/set-format.js +++ b/gulp_tasks/set-format.js @@ -1,10 +1,10 @@ -var gulp = require('gulp'), - helper = require('./helpers'), - fs = require('fs'), - args = process.argv; +const gulp = require('gulp'); +const helper = require('./helpers'); +const fs = require('fs'); +const args = process.argv; gulp.task('set-format', function() { - var packageJsonFile = './package.json'; + const packageJsonFile = './package.json'; fs.readFile(packageJsonFile, 'utf8', function (error, data) { var newFormat = ''; @@ -24,7 +24,7 @@ gulp.task('set-format', function() { if (newFormat.length === 0 || (validParams.indexOf(newFormat[0]) === -1)) { helper.log('Please, give us a valid project format using the `--n` param.', 'danger'); - process.exit(1) + process.exit(1); } updatedPackageJson.projectFormat = newFormat[0]; diff --git a/gulp_tasks/styles.js b/gulp_tasks/styles.js index 71e8141..4e355fd 100755 --- a/gulp_tasks/styles.js +++ b/gulp_tasks/styles.js @@ -1,33 +1,31 @@ -var gulp = require('gulp'), - plumber = require('gulp-plumber'), - sass = require('gulp-sass'), - rename = require('gulp-rename'), - autoprefixer = require('gulp-autoprefixer'), - sourcemaps = require('gulp-sourcemaps'), - sassLint = require('gulp-sass-lint'), - browserSync = require('browser-sync'); +const gulp = require('gulp'); +const plumber = require('gulp-plumber'); +const sass = require('gulp-sass'); +const rename = require('gulp-rename'); +const autoprefixer = require('gulp-autoprefixer'); +const sourcemaps = require('gulp-sourcemaps'); +const sassLint = require('gulp-sass-lint'); +const browserSync = require('browser-sync'); // Styles gulp.task('styles', function() { - return gulp.src(gulp.paths.styles) - .pipe(plumber({ - errorHandler: function (error) { - console.log(error.message); - this.emit('end'); - } - })) - .pipe(sassLint({configFile: 'sass-lint.yml'})) - .pipe(sassLint.format()) - .pipe(sassLint.failOnError()) - .pipe(sourcemaps.init()) - .pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError)) - .pipe(rename({suffix: '.min'})) - .pipe(autoprefixer(['last 2 versions', 'ie 8', 'ie 9', '> 1%'])) - .pipe(sourcemaps.write('.', { - mapFile: function(mapFilePath) { - return mapFilePath.replace('.css.map', '.map'); - } - })) - .pipe(gulp.dest(gulp.paths.stylesDest)) - .pipe(browserSync.reload({stream:true})) + return gulp.src(gulp.paths.styles) + .pipe(plumber({ + errorHandler: error => { + console.log(error.message); + this.emit('end'); + } + })) + .pipe(sassLint({configFile: 'sass-lint.yml'})) + .pipe(sassLint.format()) + .pipe(sassLint.failOnError()) + .pipe(sourcemaps.init()) + .pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError)) + .pipe(rename({suffix: '.min'})) + .pipe(autoprefixer(['last 2 versions', 'ie 8', 'ie 9', '> 1%'])) + .pipe(sourcemaps.write('.', { + mapFile: mapFilePath => mapFilePath.replace('.js.map', '.map') + })) + .pipe(gulp.dest(gulp.paths.stylesDest)) + .pipe(browserSync.reload({stream: true})) }); diff --git a/gulp_tasks/wp-build.js b/gulp_tasks/wp-build.js index 99d1ec8..ea5d1b0 100644 --- a/gulp_tasks/wp-build.js +++ b/gulp_tasks/wp-build.js @@ -1,27 +1,27 @@ -var gulp = require('gulp'), - plumber = require('gulp-plumber'), - readlineSync = require('readline-sync'), - helper = require('./helpers'), - del = require('del'); +const gulp = require('gulp'); +const plumber = require('gulp-plumber'); +const readlineSync = require('readline-sync'); +const helper = require('./helpers'); +const del = require('del'); // WP Files gulp.task('wp-build', function() { - var dbName = readlineSync.question('[wp-config] DB name: '), - dbUser = readlineSync.question('[wp-config] DB user: '), - dbPass = readlineSync.question('[wp-config] DB password: '), - dbHost = readlineSync.question('[wp-config] DB host: '), - packageJson = gulp.config.packageJson, - gulpPaths = gulp.paths; + const dbName = readlineSync.question('[wp-config] DB name: '); + const dbUser = readlineSync.question('[wp-config] DB user: '); + const dbPass = readlineSync.question('[wp-config] DB password: '); + const dbHost = readlineSync.question('[wp-config] DB host: '); + const packageJson = gulp.config.packageJson; + const gulpPaths = gulp.paths; - helper.updateWpConfig({ name: dbName, user: dbUser, pass: dbPass, host: dbHost }); - helper.updateWpStyle(packageJson.title); - helper.updateWpKeys(); + helper.updateWpConfig({ name: dbName, user: dbUser, pass: dbPass, host: dbHost }); + helper.updateWpStyle(packageJson.title); + helper.updateWpKeys(); del([gulpPaths.themesWp + '*', '!' + gulpPaths.themesWp + packageJson.name, '!' + gulpPaths.themesWp + 'index.php']); gulp.src([gulpPaths.pluginsWp]) .pipe(plumber({ - errorHandler: function(error) { + errorHandler: error => { console.log(error.message); this.emit('end'); } @@ -30,7 +30,7 @@ gulp.task('wp-build', function() { gulp.src('src/style.css') .pipe(plumber({ - errorHandler: function(error) { + errorHandler: error => { console.log(error.message); this.emit('end'); } diff --git a/gulp_tasks/wp-install.js b/gulp_tasks/wp-install.js index 481b2d3..f5d6b37 100644 --- a/gulp_tasks/wp-install.js +++ b/gulp_tasks/wp-install.js @@ -1,58 +1,61 @@ -var gulp = require( 'gulp' ), - request = require( 'request' ), - zlib = require( 'zlib' ), - fs = require( 'fs' ), - AdmZip = require( 'adm-zip' ), - readlineSync = require('readline-sync'), - helper = require('./helpers'), - fileUrl = 'https://wordpress.org/latest.zip', - output = 'latest.zip'; +const gulp = require( 'gulp' ); +const request = require( 'request' ); +const zlib = require( 'zlib' ); +const fs = require( 'fs' ); +const AdmZip = require( 'adm-zip' ); +const readlineSync = require('readline-sync'); +const helper = require('./helpers'); +const fileUrl = 'https://wordpress.org/latest.zip'; +const output = 'latest.zip'; // WP Install gulp.task('wp-install', function() { - var packageJson = gulp.config.packageJson, - initialized = helper.fileExists( './wordpress/index.php' ); - projectName = process.argv.splice( process.argv.indexOf( '--p' ) )[1]; - - if( packageJson.name === 'grao-de-milho' ) { - - helper.log('Set the project name using gulp init --p "[Project Name]".', 'danger'); - helper.log('Stoping...', 'danger'); - process.exit(); - - } else { - - if(initialized) { - helper.log('Ops! Wordpress is already installed.', 'danger'); - var answer = readlineSync.question('Do you want to reinstall wordpress? (Y or N) '); - if(['N', 'NO'].indexOf(answer.toUpperCase()) >= 0) { - helper.log('Stoping...', 'danger'); - process.exit(); - } else if(['Y', 'YES'].indexOf(answer.toUpperCase()) < 0) { - helper.log('Answer unexpected', 'danger'); - helper.log('Stoping...', 'danger'); - process.exit(); - } - } - - helper.log('Downloading wordpress...', 'success'); - - // Install WP - var req = request({ - url: fileUrl, - encoding: null - }, function(err, resp, body) { - if(err) throw err; - fs.writeFile( output, body, function(err) { - helper.log('Unzipping wordpress...', 'success'); - var zip = new AdmZip(output); - zip.extractAllTo( './' ); - fs.unlink( output ); - helper.log('Coping wp-config...', 'success'); - fs.createReadStream('./wp-config.php').pipe(fs.createWriteStream('./wordpress/wp-config.php')); - gulp.start('wp-build'); - }); - }); - } + const packageJson = gulp.config.packageJson; + const wpIsInitialized = helper.fileExists('./wordpress/index.php'); + const projectName = process.argv.splice(process.argv.indexOf('--p'))[1]; + + if(packageJson.name === 'grao-de-milho') { + helper.log('Set the project name using gulp init --p "[Project Name]".', 'danger'); + helper.log('Stoping...', 'danger'); + process.exit(); + } + + if(wpIsInitialized) { + helper.log('Ops! Wordpress is already installed.', 'danger'); + const answer = readlineSync.question('Do you want to reinstall wordpress? (Y or N) '); + + if(['N', 'NO'].indexOf(answer.toUpperCase()) >= 0) { + helper.log('Stoping...', 'danger'); + process.exit(); + } else if(['Y', 'YES'].indexOf(answer.toUpperCase()) < 0) { + helper.log('Answer unexpected', 'danger'); + helper.log('Stoping...', 'danger'); + process.exit(); + } + } + + helper.log('Downloading wordpress...', 'success'); + + // Download + request({ + url: fileUrl, + encoding: null + }, function(err, res, body) { + if(err) throw err; + + fs.writeFile(output, body, function(err) { + if(err) throw err; + + helper.log('Unzipping wordpress...', 'success'); + + const zip = new AdmZip(output); + zip.extractAllTo('./'); + fs.unlink(output); + + helper.log('Coping wp-config...', 'success'); + fs.createReadStream('./wp-config.php').pipe(fs.createWriteStream('./wordpress/wp-config.php')); + gulp.start('wp-build'); + }); + }); }); From 9104f292474a385f1aa7791fa3b6aba6d7daa7e4 Mon Sep 17 00:00:00 2001 From: Alison Monteiro Date: Wed, 7 Dec 2016 22:27:36 -0300 Subject: [PATCH 3/4] fix(gulp): minor fixes - small refactorings - remove unused modules on images task - using `require('fs')` instead `require(' fs ')` - improve some var/const names --- gulp_tasks/browser-sync.js | 8 +++----- gulp_tasks/connect-sync.js | 7 ++----- gulp_tasks/images.js | 3 --- gulp_tasks/styles.js | 1 - gulp_tasks/wp-build.js | 1 - gulp_tasks/wp-install.js | 29 ++++++++++++++--------------- 6 files changed, 19 insertions(+), 30 deletions(-) diff --git a/gulp_tasks/browser-sync.js b/gulp_tasks/browser-sync.js index 910aa5f..a491123 100755 --- a/gulp_tasks/browser-sync.js +++ b/gulp_tasks/browser-sync.js @@ -2,9 +2,7 @@ const gulp = require('gulp'); const browserSync = require('browser-sync'); gulp.task('browser-sync', function() { - browserSync({ - server: { - baseDir: gulp.paths.basePath - } - }); + const baseDir = gulp.paths.basePath; + + browserSync({server: { baseDir }}); }); diff --git a/gulp_tasks/connect-sync.js b/gulp_tasks/connect-sync.js index c850e70..847c04e 100755 --- a/gulp_tasks/connect-sync.js +++ b/gulp_tasks/connect-sync.js @@ -3,15 +3,12 @@ const connect = require('gulp-connect-php'); const browserSync = require('browser-sync'); gulp.task('connect-sync', function() { + const proxy = gulp.config.localhost + ':' + gulp.config.port; const serverConfig = { base: gulp.paths.basePath, port: gulp.config.port, livereload: true }; - connect.server(serverConfig, function () { - browserSync({ - proxy: gulp.config.localhost + ':' + gulp.config.port - }); - }); + connect.server(serverConfig, () => browserSync({ proxy })); }); diff --git a/gulp_tasks/images.js b/gulp_tasks/images.js index 423000c..ed45c49 100755 --- a/gulp_tasks/images.js +++ b/gulp_tasks/images.js @@ -1,7 +1,4 @@ const gulp = require('gulp'); -const plumber = require('gulp-plumber'); -const cache = require('gulp-cache'); -const imagemin = require('gulp-imagemin'); const browserSync = require('browser-sync'); gulp.task('images', function() { diff --git a/gulp_tasks/styles.js b/gulp_tasks/styles.js index 4e355fd..843a97e 100755 --- a/gulp_tasks/styles.js +++ b/gulp_tasks/styles.js @@ -7,7 +7,6 @@ const sourcemaps = require('gulp-sourcemaps'); const sassLint = require('gulp-sass-lint'); const browserSync = require('browser-sync'); -// Styles gulp.task('styles', function() { return gulp.src(gulp.paths.styles) .pipe(plumber({ diff --git a/gulp_tasks/wp-build.js b/gulp_tasks/wp-build.js index ea5d1b0..9f4baef 100644 --- a/gulp_tasks/wp-build.js +++ b/gulp_tasks/wp-build.js @@ -4,7 +4,6 @@ const readlineSync = require('readline-sync'); const helper = require('./helpers'); const del = require('del'); -// WP Files gulp.task('wp-build', function() { const dbName = readlineSync.question('[wp-config] DB name: '); const dbUser = readlineSync.question('[wp-config] DB user: '); diff --git a/gulp_tasks/wp-install.js b/gulp_tasks/wp-install.js index f5d6b37..1ebab3c 100644 --- a/gulp_tasks/wp-install.js +++ b/gulp_tasks/wp-install.js @@ -1,15 +1,14 @@ -const gulp = require( 'gulp' ); -const request = require( 'request' ); -const zlib = require( 'zlib' ); -const fs = require( 'fs' ); -const AdmZip = require( 'adm-zip' ); +const gulp = require('gulp'); +const request = require('request'); +const zlib = require('zlib'); +const fs = require('fs'); +const AdmZip = require('adm-zip'); const readlineSync = require('readline-sync'); const helper = require('./helpers'); -const fileUrl = 'https://wordpress.org/latest.zip'; -const output = 'latest.zip'; -// WP Install gulp.task('wp-install', function() { + const wpLatestZip = 'https://wordpress.org/latest.zip'; + const outputZip = 'latest.zip'; const packageJson = gulp.config.packageJson; const wpIsInitialized = helper.fileExists('./wordpress/index.php'); const projectName = process.argv.splice(process.argv.indexOf('--p'))[1]; @@ -38,19 +37,19 @@ gulp.task('wp-install', function() { // Download request({ - url: fileUrl, + url: wpLatestZip, encoding: null - }, function(err, res, body) { - if(err) throw err; + }, function(reqError, response, body) { + if(reqError) throw reqError; - fs.writeFile(output, body, function(err) { - if(err) throw err; + fs.writeFile(outputZip, body, error => { + if(error) throw error; helper.log('Unzipping wordpress...', 'success'); - const zip = new AdmZip(output); + const zip = new AdmZip(outputZip); zip.extractAllTo('./'); - fs.unlink(output); + fs.unlink(outputZip); helper.log('Coping wp-config...', 'success'); fs.createReadStream('./wp-config.php').pipe(fs.createWriteStream('./wordpress/wp-config.php')); From 98a8349dc7a095354b9c521cd897b901020592c1 Mon Sep 17 00:00:00 2001 From: Alison Monteiro Date: Thu, 8 Dec 2016 22:31:45 -0300 Subject: [PATCH 4/4] fix(gulp): making some refactoring on helpers file it's just a minor refactoring section. we removed some unused methods from the exported object also we made some refactoring on almost all methods. --- gulp_tasks/helpers.js | 235 +++++++++++++++++++++--------------------- 1 file changed, 115 insertions(+), 120 deletions(-) diff --git a/gulp_tasks/helpers.js b/gulp_tasks/helpers.js index b7d254e..9170395 100644 --- a/gulp_tasks/helpers.js +++ b/gulp_tasks/helpers.js @@ -1,158 +1,153 @@ -var fs = require('fs'), - slugify = require('slugify'), - request = require('request'); - -// Helpers -function helpers() { - function fileExists(filePath) { - try { - return fs.statSync(filePath).isFile(); - } catch (err) { - return false; - } +// TODO: refactor this file ASAP. +const fs = require('fs'); +const slugify = require('slugify'); +const request = require('request'); + +const wpStyleFile = './src/style.css'; +const wpConfigFile = './wp-config.php'; +const bowerJsonFile = './bower.json'; +const packageJsonFile = './package.json'; + +function rewriteProjectName(name) { + if (name === '') { + log('Please, give us a project name using the `--p` param.', 'danger'); + process.exit(); } - function log(message, type) { - var date = new Date().toTimeString().split(' ')[0]; - var dateFormated = '[\x1b[90m' + date + '\x1b[0m] >> '; - var color = ''; - var log = ''; - - switch (type) { - case 'danger': - color = '\x1b[31m'; - break; - case 'success': - color = '\x1b[32m'; - break; - default: - color = '\x1b[34m'; - } - - log += dateFormated + color + message; - log += '\x1b[0m'; - - console.log(log); - } - - function rewriteProjectName(name) { - if (name === '') { - this.log('Please, give us a project name using the `--p` param.', 'danger'); - process.exit(); - } - - this.updatePackageJson(name); - this.updateBowerJson(name); - } + updatePackageJson(name); + updateBowerJson(name); +} - function updatePackageJson(name) { - var packageJsonFile = './package.json'; - var slug = slugify(name).toLowerCase(); - var that = this; +function updatePackageJson(name) { + const slug = getSlug(name); - that.log('Configuring package.json', 'success'); + log('Configuring package.json...', 'success'); - fs.readFile(packageJsonFile, 'utf8', function (err, data) { - var updatedPackageJson; + fs.readFile(packageJsonFile, 'utf8', function (error, data) { + checkErrorsAndExit(error); - checkErrorsWhenIsReading(err); + const updatedPackageJson = JSON.parse(data); + updatedPackageJson.version = '0.0.0'; + updatedPackageJson.name = slug; + updatedPackageJson.title = name; + updatedPackageJson.description = name; - updatedPackageJson = JSON.parse(data); + writeOn(packageJsonFile, JSON.stringify(updatedPackageJson, null, ' ')); + }); +} - updatedPackageJson.version = '0.0.0'; - updatedPackageJson.name = slug; - updatedPackageJson.title = name; - updatedPackageJson.description = name; +function updateBowerJson(name) { + const slug = getSlug(name); - writeOn(packageJsonFile, JSON.stringify(updatedPackageJson, null, ' ')); - }); - } + log('Configuring bower.json', 'success'); - function updateBowerJson(name) { - var bowerJsonFile = './bower.json'; - var slug = slugify(name).toLowerCase(); + fs.readFile(bowerJsonFile, 'utf8', function (error, data) { + checkErrorsAndExit(error); - this.log('Configuring bower.json', 'success'); + writeOn(bowerJsonFile, data.replace(/grao-de-milho/g, slug)); + }); +} - fs.readFile(bowerJsonFile, 'utf8', function (err, data) { - checkErrorsWhenIsReading(err); +function updateWpStyle(name) { + if (fileExists(wpStyleFile)) { + fs.readFile(wpStyleFile, 'utf8', function (error, data) { + checkErrorsAndExit(error); - writeOn(bowerJsonFile, data.replace(/grao-de-milho/g, slug)); + writeOn(wpStyleFile, data.replace(/Grão de Milho/g, name)); }); } +} - function updateWpStyle(name) { - var wpStyleFile = './src/style.css'; - - if (fileExists(wpStyleFile)) { - fs.readFile(wpStyleFile, 'utf8', function (err, data) { - checkErrorsWhenIsReading(err); - - writeOn(wpStyleFile, data.replace(/Grão de Milho/g, name)); - }); - } - } +function updateWpConfig(dbOptions) { + fs.readFile(wpConfigFile, 'utf8', function (error, data) { + checkErrorsAndExit(error); - function updateWpConfig(dbOptions) { - var wpConfigDefaultUrl = './wp-config.php'; - var wpConfigUrl = './wordpress/wp-config.php'; + const newWpConfigFile = './wordpress/wp-config.php'; - fs.readFile(wpConfigDefaultUrl, 'utf8', function (err, data) { - checkErrorsWhenIsReading(err); + data = data.replace(/database_name_here/g, dbOptions.name); + data = data.replace(/username_here/g, dbOptions.user); + data = data.replace(/password_here/g, dbOptions.pass); + data = data.replace(/host_here/g, dbOptions.host); - data = data.replace(/database_name_here/g, dbOptions.name); - data = data.replace(/username_here/g, dbOptions.user); - data = data.replace(/password_here/g, dbOptions.pass); - data = data.replace(/host_here/g, dbOptions.host); + writeOn(newWpConfigFile, data); + }); +} - writeOn(wpConfigUrl, data); - }); - } +function updateWpKeys() { + const secretKeyUrl = 'https://api.wordpress.org/secret-key/1.1/salt/'; - function updateWpKeys() { - var wpConfigUrl = './wordpress/wp-config.php', - url = 'https://api.wordpress.org/secret-key/1.1/salt/'; + log('Generating authentication keys', 'success'); - this.log('Generating authentication keys', 'success'); + request + .get(secretKeyUrl, function (error, response, body) { + checkErrorsAndExit(error); - request.get(url, function (err, response, body) { - checkErrorsWhenIsReading(err); + const wpConfigUrl = './wordpress/wp-config.php'; fs.readFile(wpConfigUrl, 'utf8', function (err, data) { - checkErrorsWhenIsReading(err); + checkErrorsAndExit(err); data = data.replace(/AUTHENTICATION_KEY/gi, body); writeOn(wpConfigUrl, data); }); }); - } +} - function writeOn(file, content) { - fs.writeFile(file, content, 'utf8', function (err) { - checkErrorsWhenIsReading(err); - }); +function getSlug(name) { + return slugify(name).toLowerCase(); +} + +function checkErrorsAndExit(error) { + if (error) { + log(error, 'danger'); + process.exit(1) } +} + +function writeOn(file, content) { + fs.writeFile(file, content, 'utf8', err => checkErrorsAndExit(err)); +} - function checkErrorsWhenIsReading(error) { - if (error) { - this.log(error, 'danger'); - process.exit(1) - } +function fileExists(filePath) { + try { + return fs.statSync(filePath).isFile(); + } catch (err) { + // TODO: handle this + return false; } +} + +function log(message, type) { + const date = new Date().toTimeString(); + const dateFormated = dateTermnialOutputFormat(date.split(' ')[0]); + const color = colorByAlertType(type); + const log = dateFormated + color + message + '\x1b[0m'; + + console.log(log); +} + +function dateTermnialOutputFormat(date) { + return '[\x1b[90m' + date + '\x1b[0m] >> '; +} - return { - slugify: slugify, - fileExists: fileExists, - log: log, - writeOn: writeOn, - rewriteProjectName: rewriteProjectName, - updateWpConfig: updateWpConfig, - updatePackageJson: updatePackageJson, - updateBowerJson: updateBowerJson, - updateWpStyle: updateWpStyle, - updateWpKeys: updateWpKeys - }; +function colorByAlertType(type) { + switch (type) { + case 'danger': + return '\x1b[31m'; + case 'success': + return '\x1b[32m'; + default: + return '\x1b[34m'; + } } -module.exports = helpers(); +module.exports = { + log, + writeOn, + fileExists, + updateWpConfig, + rewriteProjectName, + updateWpStyle, + updateWpKeys +};