-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
121 lines (104 loc) · 3.54 KB
/
gulpfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
/**
* Gulp tasks for automating our compile and build process.
*
* @package Coaching Pro Theme
* @author brandiD
* @link http://thebrandid.com
* @license GPL-2.0+
* @version 2.0.0
*/
'use strict';
var autoprefixer = require('autoprefixer');
var concat = require('gulp-concat');
var del = require('del');
var gulp = require('gulp');
var merge = require('merge-stream');
var postcss = require('gulp-postcss');
var pxtorem = require('postcss-pxtorem');
var sass = require('gulp-sass')(require('node-sass'));
var wpPot = require('gulp-wp-pot');
var zip = require('gulp-zip');
// Generates all stylesheet files from SASS.
gulp.task('styles-new', async function() {
// Define options for pxtorem.
var processors = [
autoprefixer({
overrideBrowserslist: [
"last 1 version"
]
}),
];
var stylecss = gulp.src('sass/style.scss')
.pipe(sass().on('error', sass.logError)) // Stop on errors.
.pipe(postcss(processors))
.pipe(gulp.dest('./'));
var blockeditorstyles = gulp.src('sass/block-editor/*.scss')
.pipe(sass().on('error', sass.logError)) // Stop on errors.
.pipe(postcss(processors))
.pipe(gulp.dest('./css/'));
var customblockstyles = gulp.src('sass/custom-block-styles.scss')
.pipe(sass().on('error', sass.logError)) // Stop on errors.
.pipe(postcss(processors))
.pipe(gulp.dest('./css/'));
var edd = gulp.src('sass/easydigitaldownloads.scss')
.pipe(sass().on('error', sass.logError)) // Stop on errors.
.pipe(postcss(processors))
.pipe(gulp.dest('./css/'));
var woocommerce = gulp.src('sass/woocommerce.scss')
.pipe(sass().on('error', sass.logError)) // Stop on errors.
.pipe(postcss(processors))
.pipe(gulp.dest('./css/'));
var wpforms = gulp.src('sass/wpforms.scss')
.pipe(sass().on('error', sass.logError)) // Stop on errors.
.pipe(postcss(processors))
.pipe(gulp.dest('./css/'));
return merge(stylecss, blockeditorstyles, customblockstyles, edd, woocommerce, wpforms);
});
// Removes the generated CSS file.
gulp.task('clean', async function() {
return del([
'style.css',
]);
});
// Watch SASS files and auto-generate a new CSS file on changes.
gulp.task('watch', async function() {
return gulp.watch(['sass/*.scss', 'sass/block-editor/*.scss'], (done) => {
// gulp.series(['clean', 'styles', 'blockeditorstyles'])(done);
gulp.series(['clean', 'styles-new'])(done);
});
});
// Generate .pot files for language translation.
gulp.task('pot', function() {
return gulp.src(['./**/*.php'])
.pipe(wpPot({
domain: 'coaching-pro',
package: 'Coaching Pro'
}))
.pipe(gulp.dest('languages/coaching-pro.pot'));
});
// Zip all theme files and put into /dist/ folder.
gulp.task('zip', async function() {
return gulp.src([
'config/**/*',
'css/*',
'images/*',
'includes/**/*',
'js/*',
'languages/*',
'lib/*',
'xml/*',
'*.css',
'*.md',
'*.php',
'readme.txt',
'screenshot.png',
], {
base: '.'
})
.pipe(zip('coaching-pro.zip'))
.pipe(gulp.dest('./dist'))
});
// Remove old stylesheet file, compile all SASS files, zip theme files and put it into the /dist/ folder.
gulp.task('build', gulp.series(['clean', 'styles-new', 'pot', 'zip']));
// Default process if none is defined.
gulp.task('default', gulp.series(['clean', 'styles-new']));