This repository has been archived by the owner on Feb 18, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathgulpfile.js
102 lines (84 loc) · 3.36 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
/****************************************************************
* Deklarasi Variable untuk package dan library yang di gunakan *
* *
* $ npm install gulp gulp-sass gulp-postcss tailwindcss \ *
* browser-sync --save *
***************************************************************/
var gulp = require('gulp');
var sass = require('gulp-sass');
var postcss = require('gulp-postcss');
var path = require('path');
var tailwindcss = require('tailwindcss');
var purifycss = require('gulp-purifycss');
var purgecss = require('gulp-purgecss');
///var browserSync = require('browser-sync').create();
/****************************************************************
* Deklarasi Variable source, build, configname *
* source : folder yang berisikan file sass,css,scss *
* build : folder untuk menyimpan hasil dari source *
* configname: nama file config tailwindcss yang di dapat dari *
* $ node_modules/./bin/tailwindcss init <namaconfig> *
* $ # outputnya dalam bentuk <namaconfig>.js *
* *
* variable watchList berisi fungsi untuk mengecheck perubahan *
* pada source berdasarkan extensi *
***************************************************************/
var source = 'src',
build = 'src',
configname = 'ri7nz',
watchList = (action, list=[]) => {
if ( list.length <= 0 ){
list = [
'css',
'sass',
'scss',
// Silahkan tambahkan extensi file css/less/sass/etc
];
}
if ( typeof action === 'string' )
action = [action];
list.map((ext) => {
gulp.watch( `${source}/**/*.${ext}`, action);
});
return;
};
/****************************************************************
* $ gulp style # untuk menjalankan fungsi dibawah ini *
***************************************************************/
gulp.task('purgecss', () => {
return gulp.src('./build/**/*.css')
.pipe(purgecss({
content: ['./build/**/*.js','./build/**/*.html' ]
}))
.pipe(gulp.dest('./build/'));
});
gulp.task('purifycss', () => {
return gulp.src('./build/**/*.css')
.pipe(purifycss(
['./build/**/*.js','./build/**/*.html' ]
))
.pipe(gulp.dest('./build/'));
});
gulp.task( 'style', () => {
/**
* require precss & postcss-import untuk menyelesaikan
* masalah @import pada scss sass
*/
let plugins = [
require('precss'),
require('postcss-import'),
tailwindcss( `./${configname}.js` ),
require( 'autoprefixer' )
];
return gulp.src( `${source}/**/*.scss` )
.pipe(postcss(plugins))
.pipe( sass().on('error', sass.logError) )
.pipe( gulp.dest( `${build}/` ) );
});
/****************************************************************
* $ gulp # untuk menjalankan fungsi dibawah ini *
***************************************************************/
gulp.task( 'default', () => {
watchList('style');
//gulp.watch( source + '/**/*.scss', ['style']);
} );