1 | import _ from 'lodash';
|
2 | import gulp from 'gulp';
|
3 | import requireDir from 'require-dir';
|
4 | import runSequence from 'run-sequence';
|
5 |
|
6 | const loadGulpTasks = () => {
|
7 |
|
8 | const tasks = requireDir('./gulp/tasks', { recurse: true });
|
9 |
|
10 |
|
11 | const env = process.env.NODE_ENV || 'production';
|
12 |
|
13 | _.each(tasks, (task, relativePath) => {
|
14 | if (_.isObject(task) && _.isFunction(task.default)) {
|
15 | task = task.default;
|
16 | }
|
17 |
|
18 | console.assert(_.isFunction(task),
|
19 | 'gulp/tasks/%s: module\'s export is not a function', relativePath);
|
20 |
|
21 | task({ env: env, watch: false });
|
22 | });
|
23 | };
|
24 |
|
25 | loadGulpTasks();
|
26 |
|
27 | gulp.task('default', ['prod']);
|
28 | gulp.task('prod', ['production']);
|
29 | gulp.task('dev', ['development']);
|
30 |
|
31 | gulp.task('development', (callback) => {
|
32 | process.env.NODE_ENV = 'development';
|
33 |
|
34 | runSequence(
|
35 | 'clean',
|
36 | ['app:build-dev', 'web:build-dev'],
|
37 | ['app:dist', 'web:dist'],
|
38 | callback
|
39 | );
|
40 | });
|
41 |
|
42 | gulp.task('production', (callback) => {
|
43 | process.env.NODE_ENV = 'production';
|
44 |
|
45 | runSequence(
|
46 | 'clean',
|
47 | ['app:build-prod', 'web:build-prod'],
|
48 | ['app:dist', 'web:dist'],
|
49 | callback
|
50 | );
|
51 | });
|