Passed
Push — master ( f31715...0e6aca )
by Amit
02:30
created

gulp.task(ꞌresourcesꞌ)   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 21

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 21
rs 9.3142
c 0
b 0
f 0

1 Function

Rating   Name   Duplication   Size   Complexity  
A ��) 0 6 1
1
'use strict';
2
3
const gulp = require( 'gulp' ),
4
    sass = require( 'gulp-sass' ),
5
    autoprefixer = require( 'gulp-autoprefixer' ),
6
    nano = require( 'gulp-cssnano' ),
7
    babel = require( 'gulp-babel' ),
8
    uglify = require( 'gulp-uglify' ),
9
    imagemin = require( 'gulp-imagemin' ),
10
    rename = require( 'gulp-rename' ),
11
    concat = require( 'gulp-concat' ),
12
    sourcemaps = require( 'gulp-sourcemaps' ),
13
    del = require( 'del' ),
14
    flog = require('fancy-log'),
15
    eslint = require( 'gulp-eslint' ),
16
    browserSync = require( 'browser-sync' ).create( );
17
18
gulp.task( 'styles', function ( ) {
19
20
    // List al your SASS files HERE
21
    let scss_files = [
22
        'assets/styles/main.scss'
23
    ];
24
25
    gulp.src( scss_files )
26
        .pipe( sourcemaps.init( ) )
27
        .pipe( sass( )
28
            .on( 'error', function ( err ) {
29
                flog.error(
30
                    'Error found:\n\x07' + err.message
31
                );
32
            } )
33
        )
34
        .pipe( autoprefixer( ) )
35
        .pipe( sourcemaps.write( ) )
36
        .pipe( gulp.dest( 'dist/styles' ) )
37
        .pipe( browserSync.stream( ) )
38
} );
39
40
gulp.task( 'styles-min', function ( ) {
41
    let scss_files = [
42
        'assets/styles/main.scss'
43
    ];
44
45
    gulp.src( scss_files )
46
        .pipe( sass( )
47
            .on( 'error', function ( err ) {
48
                flog.error(
49
                    'Error found:\n\x07' + err.message
50
                );
51
            } )
52
        )
53
        .pipe( autoprefixer( ) )
54
        .pipe( rename( {
55
            suffix: '.min'
56
        } ) )
57
        .pipe( nano( {
58
            discardComments: {
59
                removeAll: true
60
            }
61
        } ) )
62
        .pipe( gulp.dest( 'dist/styles' ) )
63
} );
64
65
gulp.task( 'custom-scripts', function ( ) {
66
67
    return gulp.src( 'assets/scripts/**/*.js' )
68
        .pipe( eslint( {
69
            fix: true
70
        } ) )
71
        .pipe( eslint.format( ) )
72
} );
73
74
75
// List all your JS files HERE
76
let js_files = [
77
    'node_modules/jquery/dist/jquery.js',
78
    'node_modules/foundation-sites/dist/js/foundation.js',
79
    'assets/scripts/**/*.js'
80
];
81
82
gulp.task( 'scripts', function ( ) {
83
84
    return gulp.src( js_files )
85
86
        .pipe( sourcemaps.init( ) )
87
        .pipe( concat( 'main.js' ) )
88
        .pipe( sourcemaps.write( ) )
89
        .pipe( gulp.dest( 'dist/scripts' ) )
90
        .pipe( browserSync.stream( ) )
91
} );
92
93
gulp.task( 'scripts-min', function ( ) {
94
    return gulp.src( js_files )
95
96
        .pipe( babel( ) )
97
        .pipe( concat( 'main.min.js' ) )
98
        .pipe( uglify( )
99
            .on( 'error', function ( err ) {
100
                flog.error(
101
                    err.toString( )
102
                );
103
                this.emit( 'end' );
104
            } ) )
105
        .pipe( gulp.dest( 'dist/scripts' ) )
106
} );
107
108
let resources_files = [
109
    'assets/resources/**/*.js'
110
];
111
112
gulp.task( 'resources', function ( ) {
113
114
    return gulp.src( resources_files )
115
116
        .pipe( sourcemaps.init( ) )
117
        .pipe( sourcemaps.write( ) )
118
        .pipe( babel( ) )
119
        .pipe( eslint( {
120
            fix: true
121
        } ) )
122
        .pipe( eslint.format( ) )
123
        .pipe( uglify( )
124
            .on( 'error', function ( err ) {
125
                flog.error(
126
                    err.toString( )
127
                );
128
                this.emit( 'end' );
129
            } ) )
130
        .pipe( gulp.dest( 'dist/scripts' ) )
131
        .pipe( browserSync.stream( ) )
132
} );
133
134
let php_files = [
0 ignored issues
show
Unused Code introduced by
The variable php_files seems to be never used. Consider removing it.
Loading history...
135
    '{inc,template-parts}/**/*.php',
136
    '*.php'
137
];
138
139
gulp.task( 'php', function ( ) {
140
    browserSync.reload;
0 ignored issues
show
introduced by
The result of the property access to browserSync.reload is not used.
Loading history...
141
    return;
0 ignored issues
show
Unused Code introduced by
This return has no effect and can be removed.
Loading history...
142
} );
143
144
let img_files = [
145
    'assets/images/**/*'
146
];
147
148
gulp.task( 'images', function ( ) {
149
    return gulp.src( img_files )
150
        .pipe( gulp.dest( 'dist/images' ) )
151
        .pipe( browserSync.stream( ) );
152
} );
153
154
gulp.task( 'images-min', function ( ) {
155
156
    return gulp.src( img_files )
157
        .pipe( imagemin( {
158
            optimizationLevel: 3,
159
            progressive: true,
160
            interlaced: true,
161
            use: [ imagemin.gifsicle( ), imagemin.jpegtran( ), imagemin.optipng( ), imagemin.svgo( ) ]
162
        } ) )
163
        .pipe( gulp.dest( 'dist/images' ) );
164
} );
165
166
let font_files = [
167
    'node_modules/font-awesome/fonts/*',
168
    'assets/fonts/**/*'
169
];
170
171
gulp.task( 'fonts', function ( ) {
172
173
    return gulp.src( font_files )
174
        .pipe( gulp.dest( 'dist/fonts' ) )
175
        .pipe( browserSync.stream( ) );
176
} );
177
178
gulp.task( 'fonts-min', function ( ) {
179
180
    return gulp.src( font_files )
181
        .pipe( gulp.dest( 'dist/fonts' ) );
182
} );
183
184
gulp.task( 'clean', function ( cb ) {
185
    return del( [ 'dist/styles', 'dist/scripts', 'dist/resources', 'dist/images', 'dist/fonts' ], cb )
186
} );
187
188
gulp.task( 'default', [ 'clean' ], function ( ) {
189
    gulp.start( 'styles', 'custom-scripts', 'scripts', 'resources', 'php', 'images', 'fonts' );
190
} );
191
192
gulp.task( 'production', [ 'clean' ], function ( ) {
193
    gulp.start( 'styles-min', 'scripts-min', 'resources', 'images-min', 'fonts-min' );
194
} );
195
196
gulp.task( 'watch', function ( ) {
197
198
    // Run the styles task first time gulp watch is run
199
    gulp.start( 'styles' );
200
201
    browserSync.init( {
202
        files: [ '{inc,template-parts}/**/*.php', '*.php' ],
203
        proxy: 'http://localhost/podium/',
204
        snippetOptions: {
205
            whitelist: [ '/wp-admin/admin-ajax.php' ],
206
            blacklist: [ '/wp-admin/**' ]
207
        }
208
    } );
209
    gulp.watch( [ 'assets/styles/**/*' ], [ 'styles' ] );
210
    gulp.watch( [ 'assets/scripts/**/*' ], [ 'scripts' ] );
211
    gulp.watch( [ 'assets/scripts/**/*' ], [ 'custom-scripts' ] );
212
    gulp.watch( [ 'assets/fonts/**/*' ], [ 'fonts' ] );
213
    gulp.watch( [ 'assets/images/**/*' ], [ 'images' ] );
214
    gulp.watch( [ 'assets/resources/**/*' ], [ 'resources' ] );
215
    gulp.watch( [ '{inc,template-parts}/**/*.php', '*.php' ], [ 'php' ] );
216
} );
217