1 | const { resolve } = require('path');
|
2 |
|
3 | const gulpHelp = require('gulp-help');
|
4 | const gulpLoadPlugins = require('gulp-load-plugins');
|
5 | const runSequence1 = require('run-sequence');
|
6 | const { defaultsDeep } = require('lodash');
|
7 |
|
8 | const defaults = require('./defaults');
|
9 |
|
10 | const { cleanDirectory } = require('./lib/clean');
|
11 | const { compileBabel } = require('./lib/babel');
|
12 | const { compileBrowserify, watchBrowserify } = require('./lib/browserify');
|
13 | const { compileCopy } = require('./lib/copy');
|
14 | const { compileImages } = require('./lib/images');
|
15 | const { compileLess } = require('./lib/less');
|
16 | const { runLiveServer } = require('./lib/live-server');
|
17 | const { runServer } = require('./lib/server');
|
18 | const { runTests, watchTests } = require('./lib/tests');
|
19 | const { watchCompilers } = require('./lib/watch');
|
20 |
|
21 |
|
22 | module.exports = function start(_gulp, _options = {}) {
|
23 | const gulp = gulpHelp(_gulp);
|
24 | const plugins = gulpLoadPlugins({
|
25 | lazy: false,
|
26 | config: resolve(`${__dirname}/../package.json`)
|
27 | });
|
28 |
|
29 | const options = defaultsDeep(_options, defaults);
|
30 |
|
31 | function wrap(fn) {
|
32 | return fn(gulp, plugins, options);
|
33 | }
|
34 |
|
35 | gulp.task('cleanDirectory', wrap(cleanDirectory));
|
36 | gulp.task('compileBabel', wrap(compileBabel));
|
37 | gulp.task('compileBrowserify', wrap(compileBrowserify));
|
38 | gulp.task('compileCopy', wrap(compileCopy));
|
39 | gulp.task('compileImages', wrap(compileImages));
|
40 | gulp.task('compileLess', wrap(compileLess));
|
41 | gulp.task('runLiveServer', wrap(runLiveServer));
|
42 | gulp.task('runServer', wrap(runServer));
|
43 | gulp.task('runTests', wrap(runTests));
|
44 | gulp.task('watchBrowserify', wrap(watchBrowserify));
|
45 | gulp.task('watchCompilers', wrap(watchCompilers));
|
46 | gulp.task('watchTests', wrap(watchTests));
|
47 |
|
48 | gulp.task('develop', wrap((gulp, plugin, options) => {
|
49 | const runSequence = runSequence1.use(gulp);
|
50 |
|
51 | return cb => {
|
52 | runSequence(
|
53 | 'cleanDirectory',
|
54 |
|
55 | [
|
56 | 'compileBabel',
|
57 | 'compileCopy',
|
58 | 'compileImages',
|
59 | 'compileLess'
|
60 | ],
|
61 |
|
62 | 'compileBrowserify',
|
63 | 'runTests',
|
64 |
|
65 | [
|
66 | 'runServer',
|
67 | 'runLiveServer',
|
68 | 'watchBrowserify',
|
69 | 'watchTests',
|
70 | 'watchCompilers'
|
71 | ]
|
72 | );
|
73 | };
|
74 | }));
|
75 |
|
76 | gulp.task('compile', wrap((gulp, plugin, options) => {
|
77 | const runSequence = runSequence1.use(gulp);
|
78 |
|
79 | return cb => {
|
80 | runSequence(
|
81 | 'cleanDirectory',
|
82 |
|
83 | [
|
84 | 'compileBabel',
|
85 | 'compileCopy',
|
86 | 'compileImages',
|
87 | 'compileLess'
|
88 | ],
|
89 |
|
90 | 'compileBrowserify'
|
91 | );
|
92 | };
|
93 | }));
|
94 |
|
95 | gulp.task('default', [ 'compile' ]);
|
96 | };
|