-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
54 lines (44 loc) · 1.42 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
const gulp = require('gulp');
const feTasks = require('./frontend/gulp-tasks');
const beTasks = require('./backend/gulp-tasks');
// =========================================================================================
feTasks(gulp, {port: 3010});
beTasks(gulp, {port: 3010});
// =========================================================================================
var net = require('net');
var portInUse = function (port, callback) {
var server = net.createServer(function (socket) {
socket.write('Echo server\r\n');
socket.pipe(socket);
});
server.listen(port, '127.0.0.1');
server.on('error', function (e) {
callback(true);
});
server.on('listening', function (e) {
server.close();
callback(false);
});
};
function waitForApplication(port, callback) {
const interval = setInterval(()=> {
portInUse(port, used => {
console.log("# Starting proxy server...");
if (used) {
console.log("# Proxy server started.");
clearInterval(interval);
return callback();
}
})
}, 500);
}
function proxy(cb) {
var server = require('gulp-express');
server.run([__dirname + '/index.js'], {}, 35724);
waitForApplication(3010, cb);
}
gulp.task('build', gulp.parallel('be-build', 'fe-build'));
gulp.task('start', gulp.series('be-start', 'fe-start'));
gulp.task('proxy', proxy);
gulp.task('dev', gulp.parallel('be-dev', 'proxy', 'fe-dev'));
gulp.task('default', 'dev');