forked from cncjs/cncjs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.babel.js
53 lines (42 loc) · 1.34 KB
/
gulpfile.babel.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import _ from 'lodash';
import gulp from 'gulp';
import requireDir from 'require-dir';
import runSequence from 'run-sequence';
const loadGulpTasks = () => {
// Require all tasks in gulp/tasks, including subfolders
const tasks = requireDir('./gulp/tasks', { recurse: true });
// Get environment, for environment-specific activities
const env = process.env.NODE_ENV || 'production';
_.each(tasks, (task, relativePath) => {
if (_.isObject(task) && _.isFunction(task.default)) {
task = task.default;
}
console.assert(_.isFunction(task),
'gulp/tasks/%s: module\'s export is not a function', relativePath);
task({ env: env, watch: false });
});
};
loadGulpTasks();
gulp.task('default', ['prod']);
gulp.task('prod', ['production']);
gulp.task('dev', ['development']);
gulp.task('development', (callback) => {
process.env.NODE_ENV = 'development';
runSequence(
'clean',
['app:build-dev'], // omit 'web:build-dev'
['app:i18n', 'web:i18n'],
['app:output', 'web:output'],
callback
);
});
gulp.task('production', (callback) => {
process.env.NODE_ENV = 'production';
runSequence(
'clean',
['app:build-prod', 'web:build-prod'],
['app:i18n', 'web:i18n'],
['app:dist', 'web:dist'],
callback
);
});