-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
92 lines (69 loc) · 2.2 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
"use strict";
let gulp = require('gulp');
let browserSync = require('browser-sync');
let connectPHP = require('gulp-connect-php');
const {isBigUint64Array} = require("util/types");
let reload = browserSync.reload;
let paths = {
html: ['index.html', 'Resources/Subsites/*.html'],
css: ['Resources/Scripts/CSS/style.css'],
typeScript: ['Resources/Scripts/Typescript/*.ts'],
javaScripts: ['Resources/Scripts/JavaScript/*.js'],
phpSkripts: ['Resources/Scripts/PHP/*.php', 'Resources/Scripts/PHP/inc/*.php']
};
// HTML reload Task
gulp.task('html', function () {
gulp.src(paths.html)
.pipe(reload({stream: true}));
});
//CSS reload Task
gulp.task('css', function () {
gulp.src(paths.css)
.pipe(reload({stream: true}));
});
//JavaScript reload Task
gulp.task('javaScripts', function () {
return gulp.src(paths.javaScripts)
.pipe(reload({stream: true}));
});
//PHP-script reload Task
gulp.task('phpSkripts', function () {
return gulp.src(paths.phpSkripts)
.pipe(reload({stream: true}));
});
// BrowserSync starting Task with php
gulp.task('browserSync', function () {
let result = connectPHP.server({base:'./',keepalive:true}, function () {
browserSync({
proxy: '127.0.0.1:8000',
port: '8080',
});
});
});
// TypeScript compile Task
let tsProject;
gulp.task("typeScript", function () {
let ts = require("gulp-typescript");
let sourcemaps = require('gulp-sourcemaps');
if (!tsProject) {
tsProject = ts.createProject("tsconfig.json");
}
let reporter = ts.reporter.fullReporter();
let tsResult = tsProject.src()
.pipe(sourcemaps.init())
.pipe(tsProject(reporter));
return tsResult.js
.pipe(sourcemaps.write())
.pipe(gulp.dest("Resources/Scripts/JavaScript"));
});
// initiate watching
gulp.task('watcher', function () {
createWatcher(Object.values(paths), ['html', 'css', 'typeScript', 'javaScripts', 'phpSkripts'])
});
function createWatcher(paths, tasks) {
paths.forEach(function (item, index) {
gulp.watch(item, gulp.series(tasks[index]))
})
}
//init all to default
gulp.task('default', gulp.parallel('watcher', 'browserSync'));