|
1 |
| -const DIST_DIR = __dirname + '/dist'; |
2 |
| -const path = require('path'); |
3 |
| -const gulp = require('gulp'); |
4 |
| -const runSequence = require('run-sequence'); |
5 |
| -const rollup = require('gulp-better-rollup'); |
6 |
| -const commonjs = require('rollup-plugin-commonjs'); |
7 |
| -const resolve = require('rollup-plugin-node-resolve'); |
8 |
| -const babel = require('rollup-plugin-babel'); |
9 |
| -const {noop} = require('gulp-util'); |
10 |
| -const plumber = require('gulp-plumber'); |
11 |
| -const connect = require('connect'); |
12 |
| -const serveStatic = require('serve-static'); |
13 |
| -const child_process= require('child_process'); |
14 |
| -const rename = require('gulp-rename'); |
15 |
| -const terser = require('gulp-minify'); |
| 1 | +const DIST_DIR = __dirname + "/dist"; |
| 2 | +const path = require("path"); |
| 3 | +const gulp = require("gulp"); |
| 4 | +const runSequence = require("run-sequence"); |
| 5 | +const rollup = require("gulp-better-rollup"); |
| 6 | +const commonjs = require("rollup-plugin-commonjs"); |
| 7 | +const resolve = require("rollup-plugin-node-resolve"); |
| 8 | +const babel = require("rollup-plugin-babel"); |
| 9 | +const {noop} = require("gulp-util"); |
| 10 | +const plumber = require("gulp-plumber"); |
| 11 | +const connect = require("connect"); |
| 12 | +const serveStatic = require("serve-static"); |
| 13 | +const child_process = require("child_process"); |
| 14 | +const rename = require("gulp-rename"); |
| 15 | +const terser = require("gulp-minify"); |
16 | 16 |
|
17 | 17 | const PORT= 3000;
|
18 | 18 |
|
19 | 19 | let isDevMode= false;
|
20 | 20 |
|
21 |
| -const clientEntryFile = 'src/safe-jsonp.js'; |
| 21 | +const clientEntryFile = "src/safe-jsonp.js"; |
22 | 22 |
|
23 | 23 | function createBuildTask(entryFile, buildOptions) {
|
24 | 24 |
|
25 | 25 | const {name, base, ext} = path.parse(entryFile),
|
26 | 26 | {
|
27 | 27 | exportName = name,
|
28 | 28 | destPath = DIST_DIR,
|
29 |
| - format = 'umd', |
| 29 | + format = "umd", |
30 | 30 | toES5 = false,
|
31 | 31 | outFile = `${name}.${format}${ext}`,
|
32 | 32 | taskTargetName = outFile,
|
33 | 33 | minify = false,
|
34 |
| - include = 'node_modules/**', |
35 |
| - exclude, |
36 |
| - targets, |
37 |
| - useBuiltIns = 'usage' |
| 34 | + include = "node_modules/**", |
| 35 | + exclude |
38 | 36 | } = buildOptions || {};
|
39 | 37 |
|
40 | 38 |
|
@@ -80,81 +78,68 @@ function createBuildTask(entryFile, buildOptions) {
|
80 | 78 | return taskName;
|
81 | 79 | }
|
82 | 80 |
|
83 |
| -gulp.task('webserver', function() { |
| 81 | +gulp.task("webserver", function () { |
84 | 82 | connect()
|
85 |
| - .use(serveStatic('./')) |
86 |
| - .use(serveStatic('./public')) |
87 |
| - .use(serveStatic('./dist')) |
88 |
| - .use(serveStatic('./src')) |
89 |
| - .use(serveStatic('./test')) |
| 83 | + .use(serveStatic("./")) |
| 84 | + .use(serveStatic("./public")) |
| 85 | + .use(serveStatic("./dist")) |
| 86 | + .use(serveStatic("./src")) |
| 87 | + .use(serveStatic("./test")) |
90 | 88 | .listen(PORT);
|
91 | 89 |
|
92 | 90 | console.log(`Server listening on http://localhost:${PORT}`);
|
93 | 91 | });
|
94 | 92 |
|
95 |
| -const clientBuildTask = createBuildTask(clientEntryFile, {exportName: 'JSONP', toES5: true, minify: true}); |
96 |
| -const clientBuildTaskES = createBuildTask(clientEntryFile, {format: 'esm', minify: true}); |
97 |
| - |
98 |
| -const shellTask = (name, command) => { |
99 |
| - gulp.task(name, function (done) { |
100 |
| - spawned_process = child_process.exec(command); |
101 |
| - |
102 |
| - spawned_process.on('exit', (code) => { |
103 |
| - console.log(`Child process for ${name} exited with code ${code}`); |
104 |
| - code ? done(new Error(`Process for task ${name} exited with code ${code}`)) : done(); |
105 |
| - }); |
106 |
| - }); |
107 |
| - |
108 |
| - return name; |
109 |
| -}; |
110 |
| - |
111 |
| -const npmBuildTest = shellTask('test:build', 'npm run test:build'); |
112 |
| - |
113 |
| -gulp.task('build', function (done) { |
114 |
| - runSequence([clientBuildTask, clientBuildTaskES], npmBuildTest, done); |
| 93 | +const clientBuildTask = createBuildTask(clientEntryFile, {exportName: "JSONP", toES5: true, minify: true}); |
| 94 | +const clientBuildTaskES = createBuildTask(clientEntryFile, {format: "esm", minify: true}); |
| 95 | +const clientBuildTests = createBuildTask("test/safe-jsonp.spec.js", { |
| 96 | + taskTargetName: "test", |
| 97 | + format: "cjs", |
| 98 | + toES5: true |
115 | 99 | });
|
116 |
| -gulp.task('build:dev', [clientBuildTask]); |
117 | 100 |
|
| 101 | +gulp.task("build", function (done) { |
| 102 | + runSequence([clientBuildTask, clientBuildTaskES], clientBuildTests, done); |
| 103 | +}); |
118 | 104 |
|
| 105 | +gulp.task("build:dev", [clientBuildTask]); |
119 | 106 |
|
120 | 107 | let spawned_process= null;
|
121 | 108 |
|
122 |
| -gulp.task('kill-server', function(){ |
| 109 | +gulp.task("kill-server", function () { |
123 | 110 | if(spawned_process){
|
124 | 111 | spawned_process.kill();
|
125 |
| - console.log('Child process killed'); |
| 112 | + console.log("Child process killed"); |
126 | 113 | }
|
127 | 114 | });
|
128 | 115 |
|
129 |
| -gulp.task('jsonp-server', function () { |
130 |
| - spawned_process = child_process.fork('./test/jsonp-server.js'); |
| 116 | +gulp.task("jsonp-server", function () { |
| 117 | + spawned_process = child_process.fork("./test/jsonp-server.js"); |
131 | 118 |
|
132 |
| - spawned_process.on('exit', (code)=>{ |
| 119 | + spawned_process.on("exit", (code) => { |
133 | 120 | console.log(`JSONP server exited with code ${code}`);
|
134 | 121 | });
|
135 | 122 |
|
136 | 123 | });
|
137 | 124 |
|
138 | 125 |
|
139 |
| - |
140 |
| - |
141 |
| -gulp.task('dev', function (done) { |
| 126 | +gulp.task("dev", function (done) { |
142 | 127 | isDevMode= true;
|
143 | 128 |
|
144 |
| - runSequence(['build:dev', 'webserver'], npmBuildTest, 'jsonp-server', function () { |
145 |
| - console.log('File watcher started'); |
146 |
| - gulp.watch('./src/**/*.js', ['kill-server', 'build:dev', npmBuildTest, 'jsonp-server'], function (file) { |
| 129 | + runSequence(["build:dev", "webserver"], clientBuildTests, "jsonp-server", function () { |
| 130 | + console.log("File watcher started"); |
| 131 | + gulp.watch("./src/**/*.js", ["kill-server", "build:dev", clientBuildTests, "jsonp-server"], function (file) { |
147 | 132 | console.log(`File [${file.path}] has been changed`);
|
148 | 133 | });
|
149 | 134 |
|
150 |
| - gulp.watch('./test/**/*.js', ['kill-server', npmBuildTest, 'jsonp-server'], function (file) { |
| 135 | + gulp.watch("./test/**/*.js", ["kill-server", clientBuildTests, "jsonp-server"], function (file) { |
151 | 136 | console.log(`File [${file.path}] has been changed`);
|
152 | 137 | })
|
153 | 138 | });
|
154 | 139 |
|
155 | 140 | });
|
156 | 141 |
|
157 |
| -gulp.task('default', ['build']); |
| 142 | +gulp.task("default", ["build"]); |
158 | 143 |
|
159 | 144 |
|
160 | 145 |
|
0 commit comments