osternaudClem
12/1/2015 - 4:54 PM

Gulpfile task for ReactJS and ES6

Gulpfile task for ReactJS and ES6

{
  "requireCurlyBraces": [
    "if",
    "else",
    "for",
    "while",
    "do",
    "try",
    "catch"
  ],
  "requireOperatorBeforeLineBreak": true,
  "requireCamelCaseOrUpperCaseIdentifiers": true,
  "maximumLineLength": {
    "value": 120,
    "allExcept": ["comments", "regex"]
  },
  "validateIndentation": 2,
  "validateQuoteMarks": "'",

  "disallowMultipleLineStrings": true,
  "disallowMixedSpacesAndTabs": true,
  "disallowTrailingWhitespace": true,
  "disallowSpaceAfterPrefixUnaryOperators": true,
  "disallowMultipleVarDecl": false,
  "disallowKeywordsOnNewLine": ["else"],

  "requireSpaceAfterKeywords": [
    "if",
    "else",
    "for",
    "while",
    "do",
    "switch",
    "return",
    "try",
    "catch"
  ],
  "requireSpaceBeforeBinaryOperators": [
    "=", "+=", "-=", "*=", "/=", "%=", "<<=", ">>=", ">>>=",
    "&=", "|=", "^=", "+=",

    "+", "-", "*", "/", "%", "<<", ">>", ">>>", "&",
    "|", "^", "&&", "||", "===", "==", ">=",
    "<=", "<", ">", "!=", "!=="
  ],
  "requireSpaceAfterBinaryOperators": true,
  "requireSpacesInConditionalExpression": true,
  "requireSpaceBeforeBlockStatements": true,
  "requireSpacesInForStatement": true,
  "requireLineFeedAtFileEnd": true,
  "requireSpacesInFunctionExpression": {
    "beforeOpeningCurlyBrace": true
  },
  "disallowSpacesInAnonymousFunctionExpression": {
    "beforeOpeningRoundBrace": true
  },
  "disallowSpacesInsideObjectBrackets": "all",
  "disallowSpacesInsideArrayBrackets": "all",
  "disallowSpacesInsideParentheses": true,

  "disallowMultipleLineBreaks": true,
  "disallowNewlineBeforeBlockStatements": true,
  "disallowKeywords": ["with"],
  "disallowSpacesInFunctionExpression": {
    "beforeOpeningRoundBrace": true
  },
  "disallowSpacesInFunctionDeclaration": {
    "beforeOpeningRoundBrace": true
  },
  "disallowSpacesInCallExpression": true,
  "disallowSpaceAfterObjectKeys": true,
  "requireSpaceBeforeObjectValues": true,
  "requireCapitalizedConstructors": true,
  "requireDotNotation": true,
  "requireSemicolons": true,
  "validateParameterSeparator": ", ",

  "jsDoc": {
    "checkAnnotations": "closurecompiler",
    "checkParamNames": true,
    "requireParamTypes": true,
    "checkRedundantParams": true,
    "checkReturnTypes": true,
    "checkRedundantReturns": true,
    "requireReturnTypes": true,
    "checkTypes": true,
    "checkRedundantAccess": true,
    "requireNewlineAfterDescription": true
  }
}
var gulp = require('gulp');
var rename   = require('gulp-rename');
var uglify   = require('gulp-uglify');
var jscs     = require('gulp-jscs');
var stylish  = require('gulp-jscs-stylish');
var jshint   = require('gulp-jshint');

var path = {
  'js': './sctipts/'  
}

/**
 * Check JS
 */
gulp.task('jscs', function() {
  gulp.src(path.js + '**/*.js')
    .pipe(jscs())
    .pipe(stylish.combineWithHintResults())   // combine with jshint results
    .pipe(jshint.reporter('jshint-stylish')) // use any jshint reporter to log hint
});

/**
 * Compress JS
 */
gulp.task('compress-js', function() {
  return gulp.src(path.js + '**/*.js')
    .pipe(gulp.dest('dist'))
    .pipe(rename('sctipts.min.js'))
    .pipe(uglify())
    .pipe(gulp.dest('dist'));
});
var gulp = require('gulp');
var plumber = require('gulp-plumber');
var svgSprite = require('gulp-svg-sprite');

var path = {
  'svg': './svg/'
};

gulp.task('svg-sprite', function() {
  return gulp.src(path.svg + '**/*.svg')
    .pipe(plumber())
    .pipe(svgSprite({
      mode: {
        symbol: {
          dest: './',
          sprite: 'sprite.svg'
        }
      }
    }))
    .pipe(gulp.dest('./dist'));
});