1 | const gulp = require('gulp'),
|
2 | concat = require('gulp-concat'),
|
3 | plumber = require('gulp-plumber'),
|
4 | uglify = require('gulp-uglify'),
|
5 | sourcemaps = require('gulp-sourcemaps'),
|
6 | eslint = require('gulp-eslint'),
|
7 | babel = require('gulp-babel'),
|
8 | gulpif = require('gulp-if'),
|
9 | stripDebug = require('gulp-strip-debug'),
|
10 | browserSync = require('browser-sync');
|
11 |
|
12 | module.exports = (gulp, config) => {
|
13 |
|
14 | const isDist = config.flags.isDist;
|
15 | const docs = isDist ? true : config.flags.docs;
|
16 |
|
17 | return () => {
|
18 | if (docs) {
|
19 | gulp.src(config.src.js_docs)
|
20 | .pipe(gulpif(!isDist, sourcemaps.init()))
|
21 | .pipe(plumber({
|
22 | errorHandler: err => {
|
23 | console.error(err);
|
24 | }
|
25 | }))
|
26 | .pipe(gulpif(isDist, stripDebug()))
|
27 | .pipe(eslint())
|
28 | .pipe(eslint.format())
|
29 | .pipe(babel({presets: ['env']}))
|
30 | .pipe(gulpif(isDist, uglify()))
|
31 | .pipe(concat(config.dist.min_js_docs))
|
32 | .pipe(gulpif(!isDist, sourcemaps.write()))
|
33 | .pipe(gulp.dest(config.dist.js))
|
34 | .pipe(browserSync.reload({stream: true}));
|
35 | }
|
36 | };
|
37 | };
|