-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgulpfile.js
More file actions
99 lines (87 loc) · 2.06 KB
/
Copy pathgulpfile.js
File metadata and controls
99 lines (87 loc) · 2.06 KB
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
"use strict";
import {src, dest, watch, series, parallel} from 'gulp';
// import dartSass from 'sass';
// import gulpSass from 'gulp-sass';
// const sass = gulpSass(dartSass);
import gulpSass from 'gulp-sass';
import * as dartSass from 'sass'; // Use 'sass' or 'dart-sass'
const sass = gulpSass(dartSass);
import esbuild from 'gulp-esbuild';
import notify from 'gulp-notify';
import path from 'path';
import zip from 'gulp-zip';
// paths
const scssSrc = {
'watch': 'dev/scss/**/*.scss',
'src': ['dev/scss/content.scss', 'dev/scss/popup.scss'],
'dest': './'
};
const jsSrc = {
'watch': 'dev/js/**/*.js',
'src': ['dev/js/content.js', 'dev/js/popup.js'],
'dest': './'
};
const ffSrc = [
'./manifest.json',
'./content.js',
'./content.css',
'./popup.css',
'./popup.html',
'./popup.js',
'./icons/*.png'
];
export function compileSass() {
return(
src(scssSrc.src)
.pipe(sass()
.on('error', sass.logError)
)
.on('error', notify.onError({
title: 'SASS Content Error',
message: '<%= error.message %>',
icon: path.join('.\\', 'dev', 'icons', 'sass-error.ico')
}))
.pipe(dest(scssSrc.dest))
.pipe(notify({
title: 'SASS Compiled',
message: 'Successfully compiled',
icon: path.join('.\\', 'dev', 'icons', 'sass.ico'),
sound: false,
onLast: true
}))
);
}
export function compileJs() {
return(
src(jsSrc.src)
.pipe(esbuild({
'bundle': true
}))
.on('error', notify.onError({
'title': 'JS compile error',
'message': '<%= error.message %>',
icon: path.join('.\\', 'dev', 'icons', 'js-error.ico')
}))
.pipe(dest(jsSrc.dest))
.pipe(notify({
title: 'JS Compiled',
message: 'Successfully compiled js files',
icon: path.join('.\\', 'dev', 'icons', 'js.ico'),
sound: false,
onLast: true
}))
);
}
export function ff() {
return (
src(ffSrc, { base: './', encoding: false })
.pipe(zip('twitch-superbar.zip'))
.pipe(dest('./'))
);
}
export function watchFiles() {
watch(scssSrc.watch, compileSass);
watch(jsSrc.watch, compileJs);
}
const build = series(compileSass, compileJs, watchFiles);
export default build;