|
1 |
| -const gulp = require('gulp'); |
| 1 | +const { src, dest, watch, series, parallel } = require('gulp'); |
2 | 2 | const expect = require('gulp-expect-file');
|
3 | 3 | const concat = require('gulp-concat');
|
4 | 4 | const uglify = require('gulp-uglify');
|
5 | 5 | const shell = require('gulp-shell');
|
6 | 6 |
|
7 |
| -const expectFiles = (ary) => { |
8 |
| - return gulp.src(ary).pipe(expect(ary)); |
9 |
| -} |
10 |
| - |
11 | 7 | const SOURCE_DIR = 'src';
|
12 | 8 | const DIST_DIR = 'dist';
|
13 | 9 | const base = [
|
@@ -70,42 +66,56 @@ const modules = [
|
70 | 66 | 'src/module/Stepper.js'
|
71 | 67 | ];
|
72 | 68 |
|
73 |
| -gulp.task('clean', shell.task([ |
74 |
| - `rm -rf ${DIST_DIR} docs` |
75 |
| -])); |
| 69 | +function expectFiles(ary) { |
| 70 | + return src(ary).pipe(expect(ary)); |
| 71 | +} |
76 | 72 |
|
77 |
| -/** |
78 |
| - * NPM alert potential security vulnerabilities. |
79 |
| - * yuidocjs seems to be no longer maintained. |
80 |
| - * If need the document, run the gulp task. |
81 |
| - */ |
82 |
| -gulp.task('docs', ['clean'], shell.task([ |
83 |
| - 'npm install --no-save yuidocjs yuidoc-lucid-theme', |
84 |
| - './node_modules/.bin/yuidoc -c yuidoc.json ./src' |
85 |
| -])); |
| 73 | +function clean() { |
| 74 | + return shell.task([ |
| 75 | + `rm -rf ${DIST_DIR} docs` |
| 76 | + ])(); |
| 77 | +} |
86 | 78 |
|
87 |
| -gulp.task('dev', ['clean'], () => { |
88 |
| - expectFiles(base) |
| 79 | +function docs() { |
| 80 | + return shell.task([ |
| 81 | + 'npm install --no-save yuidocjs yuidoc-lucid-theme', |
| 82 | + './node_modules/.bin/yuidoc -c yuidoc.json ./src' |
| 83 | + ])(); |
| 84 | +} |
| 85 | + |
| 86 | +function webduinoBaseJS() { |
| 87 | + return expectFiles(base) |
89 | 88 | .pipe(concat('webduino-base.js'))
|
90 |
| - .pipe(gulp.dest(DIST_DIR)); |
91 |
| - expectFiles(base.concat(boards).concat(modules)) |
92 |
| - .pipe(concat('webduino-all.js')) |
93 |
| - .pipe(gulp.dest(DIST_DIR)); |
94 |
| -}); |
| 89 | + .pipe(dest(DIST_DIR)); |
| 90 | +} |
95 | 91 |
|
96 |
| -gulp.task('prod', ['clean'], () => { |
97 |
| - expectFiles(base) |
| 92 | +function webduinoBaseMinJS() { |
| 93 | + return expectFiles(base) |
98 | 94 | .pipe(concat('webduino-base.min.js'))
|
99 | 95 | .pipe(uglify())
|
100 |
| - .pipe(gulp.dest(DIST_DIR)); |
101 |
| - expectFiles(base.concat(boards).concat(modules)) |
| 96 | + .pipe(dest(DIST_DIR)); |
| 97 | +} |
| 98 | + |
| 99 | +function webduinoAllJS() { |
| 100 | + return expectFiles(base.concat(boards).concat(modules)) |
| 101 | + .pipe(concat('webduino-all.js')) |
| 102 | + .pipe(dest(DIST_DIR)); |
| 103 | +} |
| 104 | + |
| 105 | +function webduinoAllMinJS() { |
| 106 | + return expectFiles(base.concat(boards).concat(modules)) |
102 | 107 | .pipe(concat('webduino-all.min.js'))
|
103 | 108 | .pipe(uglify())
|
104 |
| - .pipe(gulp.dest(DIST_DIR)); |
105 |
| -}); |
| 109 | + .pipe(dest(DIST_DIR)); |
| 110 | +} |
| 111 | + |
| 112 | +function watchFiles() { |
| 113 | + watch(SOURCE_DIR + '/**/*.js', series(clean, dev)); |
| 114 | +} |
| 115 | + |
| 116 | +const dev = series(webduinoBaseJS, webduinoAllJS); |
106 | 117 |
|
107 |
| -gulp.task('watch', () => { |
108 |
| - gulp.watch(SOURCE_DIR + '/**/*.js', ['dev']); |
109 |
| -}); |
| 118 | +const prod = series(webduinoBaseMinJS, webduinoAllMinJS); |
110 | 119 |
|
111 |
| -gulp.task('default', ['docs', 'dev', 'prod']); |
| 120 | +exports.watch = watchFiles; |
| 121 | +exports.default = series(clean, parallel(docs, dev, prod)); |
0 commit comments