-
Notifications
You must be signed in to change notification settings - Fork 0
/
gulpfile.config.js
109 lines (93 loc) · 2.16 KB
/
gulpfile.config.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
/**
*
* @author A.kauniyyah <[email protected]>
* @copyright 2019 A.kauniyyah | Sr. Front-end Web developer
*
* ________________________________________________________________________________
*
* gulpfile.config.js
*
* The gulp configuration file.
*
*/
// -- Settings | Turn on/off build features
const SETTINGS = {
clean: true,
scripts: true,
styles: true,
copy: true,
public: true,
pwa: true,
reload: true
};
// -- Header Template | Append of header in script js or css
const BANNERS = {
main: '/*!' +
' <%= package.name %> v<%= package.version %>' +
' | (c) ' + new Date().getFullYear() + ' <%= package.author.name %>' +
' | <%= package.license %> License' +
' | author <%= package.author %>' +
' */\n'
};
// -- Uglify setup | setup of dev or prod env build
const UGLIFY = {
prod: {
compress: {
drop_console: true,
drop_debugger: true
}
},
dev: {
compress: {
drop_console: false,
drop_debugger: false
}
}
};
// -- type format script or rollupjs | option: [es, cjs, amd, system]
const FORMAT_SCRIPT = 'es';
// -- path config | setup of path src or dist file
const SRC = './src/';
const BUILD = './build/';
const STATIC = BUILD + 'static/';
const ASSETS = SRC + 'assets/';
const LIBS = SRC + 'libs/';
const HTML = SRC + 'public/';
const PATHS = {
output: STATIC,
input: ASSETS,
libs: LIBS,
build: BUILD,
html: HTML,
src: SRC,
styles: {
dir: ASSETS + 'scss/',
input: ASSETS + 'scss/*.scss',
output: STATIC + 'css/'
},
scripts: {
dir: ASSETS + 'js/',
input: ASSETS + 'js/',
output: STATIC + 'js/',
outputNomodule: STATIC + 'js/nomodule/'
},
public: {
input: [
HTML + 'pages/**/*.html',
'!' + HTML + 'templates/**'
],
output: BUILD,
data: './site.config',
},
pwa: {
dir: ASSETS + 'pwa/'
},
};
// -- bundle config | all for export
module.exports = {
paths: PATHS,
uglify: UGLIFY,
header: BANNERS,
settings: SETTINGS,
formatScript: FORMAT_SCRIPT
};