diff --git a/gulp/libs/error-handler.js b/gulp/libs/error-handler.js index 14d3f9a..44a2170 100644 --- a/gulp/libs/error-handler.js +++ b/gulp/libs/error-handler.js @@ -1,7 +1,7 @@ -const gutil = require('./utils'); const notifier = require('node-notifier'); +const gutil = require('./utils'); -module.exports = function (errObj) { +module.exports = (errObj) => { let message = gutil.colors.red('Error'); if ('plugin' in errObj) { diff --git a/gulp/tasks/copy.js b/gulp/tasks/copy.js index e56f2bd..e5df890 100644 --- a/gulp/tasks/copy.js +++ b/gulp/tasks/copy.js @@ -3,7 +3,6 @@ */ module.exports = (gulp, globalConfig) => { - const taskConfig = { watch: [ `${globalConfig.srcDir}/*.*` // Only copy top-level files diff --git a/gulp/tasks/images.js b/gulp/tasks/images.js index ce7cf40..8a10b36 100644 --- a/gulp/tasks/images.js +++ b/gulp/tasks/images.js @@ -1,15 +1,11 @@ /** * Compress images. - * - * Install: - * yarn add -D gulp-imagemin gul-newer */ const imagemin = require('gulp-imagemin'); const newer = require('gulp-newer'); module.exports = (gulp, globalConfig) => { - const taskConfig = { watch: [`${globalConfig.srcDir}/images/**/*`] }; diff --git a/gulp/tasks/scripts.js b/gulp/tasks/scripts.js index cbac9fc..d0f40f1 100644 --- a/gulp/tasks/scripts.js +++ b/gulp/tasks/scripts.js @@ -1,12 +1,8 @@ /** * Parse and minify JavaScript - * - * Install: - * yarn add -D babel-preset-es2015 babelify gulp-eslint gulp-if vinyl-source-stream browserify vinyl-buffer gulp-uglify gulp-sourcemaps */ const eslint = require('gulp-eslint'); -const eslintOptions = require('../../.eslintrc.js'); const gulpif = require('gulp-if'); const source = require('vinyl-source-stream'); const browserify = require('browserify'); @@ -14,16 +10,18 @@ const uglify = require('gulp-uglify'); const sourcemaps = require('gulp-sourcemaps'); const buffer = require('vinyl-buffer'); const errorHandler = require('../libs/error-handler'); +const eslintOptions = require('../../.eslintrc.js'); module.exports = (gulp, globalConfig) => { - const taskConfig = { watch: [`${globalConfig.srcDir}/js/**/*`] }; gulp.task('scripts-lint', () => { - taskConfig.watch.push('gulpfile.js'); - taskConfig.watch.push('tasks/*.js'); + if (globalConfig.dev) { + taskConfig.watch.push('*.js'); + taskConfig.watch.push('gulp/**/*.js'); + } return gulp.src(taskConfig.watch) .pipe(eslint(eslintOptions)) @@ -44,7 +42,7 @@ module.exports = (gulp, globalConfig) => { .pipe(source('main.js')) .pipe(buffer()) .pipe(gulpif(globalConfig.dev, sourcemaps.init({ - loadMaps: true // loads map from browserify file + loadMaps: true // Loads map from browserify file }))) .pipe(uglify(gulpif(globalConfig.dev, { mangle: false, diff --git a/gulp/tasks/sprites.js b/gulp/tasks/sprites.js index 170df99..02e8a8a 100644 --- a/gulp/tasks/sprites.js +++ b/gulp/tasks/sprites.js @@ -1,30 +1,30 @@ /** * Create sprites of images. - * - * Install: - * yarn add -D gulp.spritesmith gulp-imagemin vinyl-buffer glob path fs */ const spritesmith = require('gulp.spritesmith'); const buffer = require('vinyl-buffer'); const imagemin = require('gulp-imagemin'); -const errorHandler = require('../libs/error-handler'); const path = require('path'); const glob = require('glob'); const fs = require('fs'); +const errorHandler = require('../libs/error-handler'); module.exports = (gulp, globalConfig) => { - const taskConfig = { watch: [`${globalConfig.srcDir}/images/sprites/*/*.png`] }; gulp.task('sprites', (done) => { glob(`${globalConfig.srcDir}/images/sprites/*`, {}, (err, nodesList) => { + if (err) { + errorHandler(err.stack); + return; + } const spritesDirs = []; - for (let i = 0, len = nodesList.length; i < len; i++) { + for (let i = 0, len = nodesList.length; i < len; i += 1) { const nodePath = nodesList[i]; const isDir = fs.statSync(nodePath).isDirectory(); @@ -38,6 +38,12 @@ module.exports = (gulp, globalConfig) => { const numSprites = spritesDirs.length; let workDone = 0; + /** + * Helps to identify when the task is done by counting if + * all the sprites are done. + * + * @return {null} + */ const checkFinish = () => { workDone += 0.5; @@ -46,7 +52,7 @@ module.exports = (gulp, globalConfig) => { } }; - for (let i = 0; i < numSprites; i++) { + for (let i = 0; i < numSprites; i += 49) { const dir = spritesDirs[i]; const name = path.basename(dir); @@ -55,7 +61,7 @@ module.exports = (gulp, globalConfig) => { imgName: `${name}.png`, cssName: `${name}.scss`, cssSpritesheetName: name, - cssVarMap: function (sprite) { + cssVarMap: (sprite) => { sprite.name = `${name}-image-${sprite.name}`; }, cssOpts: { diff --git a/gulp/tasks/styles.js b/gulp/tasks/styles.js index b644e1c..9bf44d9 100644 --- a/gulp/tasks/styles.js +++ b/gulp/tasks/styles.js @@ -1,8 +1,5 @@ /** * Parse and minify JavaScript - * - * Install: - * yarn add -D gulp-sass-lint gulp-sass gulp-if gulp-sourcemaps gulp-postcss cssnano autoprefixer */ const sassLint = require('gulp-sass-lint'); @@ -15,7 +12,6 @@ const autoprefixer = require('autoprefixer'); const errorHandler = require('../libs/error-handler'); module.exports = (gulp, globalConfig) => { - const taskConfig = { watch: [`${globalConfig.srcDir}/css/**/*`] }; @@ -51,7 +47,6 @@ module.exports = (gulp, globalConfig) => { .pipe(postcss(postcssPlugins)) .pipe(gulpif(globalConfig.dev, sourcemaps.write('./'))) .pipe(gulp.dest(`${globalConfig.destDir}/css/`)); - }); return taskConfig; diff --git a/gulp/tasks/views.js b/gulp/tasks/views.js index 7957fd0..b679c16 100644 --- a/gulp/tasks/views.js +++ b/gulp/tasks/views.js @@ -1,16 +1,12 @@ /** * Compress images. - * - * Install: - * yarn add -D gulp-pug */ const pug = require('gulp-pug'); -const errorHandler = require('../libs/error-handler'); const htmlmin = require('gulp-htmlmin'); +const errorHandler = require('../libs/error-handler'); module.exports = (gulp, globalConfig) => { - const taskConfig = { watch: [ `${globalConfig.srcDir}/views/**/*` @@ -30,5 +26,3 @@ module.exports = (gulp, globalConfig) => { return taskConfig; }; - - diff --git a/gulpfile.js b/gulpfile.js index 35bb1c7..f9f66eb 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,13 +1,8 @@ -/** - * Install - * yarn add -D gulp gulp-util run-sequence del browser-sync - */ - const gulp = require('gulp'); -const gutil = require('./gulp/libs/utils'); const runSequence = require('run-sequence'); const del = require('del'); const browserSync = require('browser-sync').create(); +const gutil = require('./gulp/libs/utils'); const config = { dev: gutil.env.dev === true, @@ -39,10 +34,9 @@ gulp.task('clean', () => { /* istanbul ignore next */ gulp.task('build', ['clean'], (done) => { - tasksSequence.push(done); - runSequence.apply(null, tasksSequence); + runSequence(...tasksSequence); }); /* istanbul ignore next */ @@ -58,7 +52,7 @@ gulp.task('serve', ['build'], () => { notify: false }); - for (let i = 0, len = tasksConfigList.length; i < len; i++) { + for (let i = 0, len = tasksConfigList.length; i < len; i += 1) { const task = tasksConfigList[i]; gulp.watch(task.watch, [task.name, browserSync.reload]); @@ -75,7 +69,7 @@ gulp.task('default', () => { */ const tasksConfigList = []; -for (let i = 0, len = tasksSequence.length; i < len; i++) { +for (let i = 0, len = tasksSequence.length; i < len; i += 1) { const taskName = tasksSequence[i]; const taskConfig = require(`./gulp/tasks/${taskName}`)(gulp, config); @@ -85,6 +79,6 @@ for (let i = 0, len = tasksSequence.length; i < len; i++) { } module.exports = { - gulp: gulp, - config: config + gulp, + config };