|
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