Gulpfile.js   A
last analyzed

Complexity

Total Complexity 11
Complexity/F 1

Size

Lines of Code 101
Function Count 11

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
cc 0
c 3
b 0
f 0
nc 1
dl 0
loc 101
rs 10
wmc 11
mnd 0
bc 11
fnc 11
bpm 1
cpm 1
noi 0

11 Functions

Rating   Name   Duplication   Size   Complexity  
A ➔ buildCss 0 7 1
A ➔ buildImages 0 6 1
A ➔ lintJs 0 7 1
A ➔ buildMain 0 6 1
A ➔ buildJs 0 10 1
A ➔ lintScss 0 6 1
A ➔ devTdd 0 10 1
A ➔ testUnit 0 5 1
A ➔ clean 0 3 1
A ➔ vendorDeps 0 6 1
A ➔ bowerInstall 0 3 1
1
'use strict';
2
3
var gulp = require('gulp');
4
var del = require('del');
5
var bower = require('gulp-bower');
6
var mocha = require('gulp-mocha');
7
var sass = require('gulp-sass');
8
var browserify = require('gulp-browserify');
9
var shell = require('gulp-shell');
10
11
var eslint = require('gulp-eslint');
12
var scsslint = require('gulp-scss-lint');
13
14
gulp.task('clean', function clean() {
15
  return del(['./build/', './vendor/']);
16
});
17
18
gulp.task('bower:install', function bowerInstall() {
19
  return bower();
20
});
21
22
gulp.task('bower:build-zepto', ['bower:install'], shell.task('npm install && npm run dist', {
23
  cwd: 'vendor/zeptojs'
24
}));
25
26
gulp.task('build:add-vendor-js', ['bower:build-zepto'], function vendorDeps() {
27
  return gulp
28
    .src('vendor/**/*.min.js')
29
    .pipe(gulp.dest('build/chrome/js/vendor'))
30
    .pipe(gulp.dest('build/firefox/js/vendor'));
31
});
32
33
gulp.task('build:js', function buildJs() {
34
  return gulp
35
    .src('source/js/*.js')
36
    .pipe(browserify({
37
      insertGlobals: true,
38
      debug: !gulp.env.production
39
    }))
40
    .pipe(gulp.dest('build/chrome/js'))
41
    .pipe(gulp.dest('build/firefox/js'));
42
});
43
44
gulp.task('build:main', function buildMain() {
45
  return gulp
46
    .src('source/*.*')
47
    .pipe(gulp.dest('build/chrome'))
48
    .pipe(gulp.dest('build/firefox'));
49
});
50
51
gulp.task('build:images', function buildImages() {
52
  return gulp
53
    .src('source/images/**')
54
    .pipe(gulp.dest('build/chrome/images'))
55
    .pipe(gulp.dest('build/firefox/images'));
56
});
57
58
gulp.task('build:scss', function buildCss() {
59
  return gulp
60
    .src('source/styles/*.scss')
61
    .pipe(sass().on('error', sass.logError))
62
    .pipe(gulp.dest('build/chrome/css'))
63
    .pipe(gulp.dest('build/firefox/css'));
64
});
65
66
gulp.task('lint:js', function lintJs() {
67
  return gulp
68
    .src('source/js/*.js')
69
    .pipe(eslint())
70
    .pipe(eslint.format())
71
    .pipe(eslint.failAfterError());
72
});
73
74
gulp.task('lint:scss', function lintScss() {
75
  return gulp
76
    .src('source/**/*.scss')
77
    .pipe(scsslint())
78
    .pipe(scsslint.failReporter());
79
});
80
81
gulp.task('test:unit', function testUnit() {
82
  return gulp
83
    .src('test/unit/**/*.spec.js')
84
    .pipe(mocha());
85
});
86
87
gulp.task('dev:tdd', function devTdd() {
88
  var files = [
89
    'lib/*.js',
90
    'lib/**/*.js',
91
    'test/**/*spec.js'
92
  ];
93
94
  return gulp
95
    .watch(files, ['test:unit']);
96
});
97
98
gulp.task('build', ['build:scss', 'build:js', 'build:main', 'build:images', 'build:add-vendor-js']);
99
gulp.task('lint', ['lint:js', 'lint:scss']);
100
101
gulp.task('default', ['build']);
102