Passed
Push — master ( ce59c2...794d88 )
by Amit
04:23
created

gulpfile.js (3 issues)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

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