-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpconfig.js
92 lines (82 loc) · 2.9 KB
/
gulpconfig.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
const projectName = 'unknown'
const projectPreset = 'laravel' // * 'laravel' | 'self-hosted' | 'static'
const projectPath = './..' // * path to project
const srcFolder = `${projectPath}/resources` // * src folder
const buildFolder = `${projectPath}/public`
import browserSync from 'browser-sync'
import phpServer from 'gulp-connect-php'
const fileMap = {
"src": {
"folder": srcFolder,
"pages": `${srcFolder}/pages`,
"styles": `${srcFolder}/css`,
"scripts": `${srcFolder}/js`,
"img": `${srcFolder}/img`,
"fonts": `${srcFolder}/fonts`,
"resources": `${srcFolder}/resources`
},
"build": {
"folder": buildFolder,
"pages": `${buildFolder}/pages`,
"styles": `${buildFolder}/styles`,
"scripts": `${buildFolder}/scripts`,
"img": `${buildFolder}/img`,
"fonts": `${buildFolder}/fonts`,
"resources": `${buildFolder}/resources`
},
"clean": buildFolder,
"public": `./../public`
}
const laravelPreset = {
"fileMap" : fileMap
}
export default
{
"fileMap": fileMap,
"serverType": "live",
// * https://browsersync.io/docs/options
"browserSync" :
{
"static" : ()=>
{
return browserSync.init({
notify: false,
reloadOnRestart: false,
server: {
// ? use for debug
// directory: true,
// ? to serve multiple roots
baseDir: [`${fileMap.build.pages}`, `${fileMap.build.folder}`],
serveStaticOptions: {
extensions: ['html']
},
//* relative path from gulpfile
// routes: {
// // "/bower_components": "bower_components"
// }
}
})
},
// * https://www.npmjs.com/package/gulp-connect-php
"live" : () =>
{
return phpServer.server({
base: `${fileMap.public}`,
hostname: '127.0.0.1',
port: 10330,
open: false,
// bin: '', // ? path to php folder (if multiple versions)
// ini : '', // ? path to php ini file
}, () => {
browserSync({
proxy: '127.0.0.1:10330',
port : 3030,
// ui : 3031,
// tunnel: `projectName`,
// online : true
})
})
}
}
}
export { projectPreset, projectName }