-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathgulpfile.js
More file actions
78 lines (67 loc) · 1.96 KB
/
gulpfile.js
File metadata and controls
78 lines (67 loc) · 1.96 KB
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
var fs = require('fs');
var path = require('path');
var gulp = require('gulp');
var rimraf = require("rimraf");
var merge = require('merge-stream');
var concat = require('gulp-concat');
var rename = require('gulp-rename');
var uglify = require('gulp-uglify');
var babel = require('gulp-babel');
var debug = require('gulp-debug');
var webpack = require('webpack');
var srcPath = 'july-meetup';
var libPath = 'july-dist';
function getFolders(dir) {
return fs.readdirSync(dir)
.filter(function(file) {
return fs.statSync(path.join(dir, file)).isDirectory();
});
}
function getFiles(dir) {
return fs.readdirSync(dir)
.filter(function(file) {
return fs.statSync(path.join(dir, file)).isFile();
});
}
gulp.task('clean', function (cb) {
rimraf(libPath, cb);
});
gulp.task('scripts', ['clean'], function() {
var folders = getFolders(srcPath);
console.log(folders);
//foreach folder
var tasks = folders.map(function(folder) {
//foreach file in a folder
return gulp.src(path.join(srcPath, folder, '/**/*.jsx'))
// transpile
.pipe(babel())
// log the file names for debug
.pipe(debug())
// write to output
.pipe(gulp.dest(path.join(srcPath, folder)));
});
return tasks;
});
gulp.task('assets', ['clean'], function() {
var folders = getFolders(srcPath);
var tasks = folders.map(function(folder) {
//foreach file in a folder
return gulp.src(path.join(srcPath, folder, '/**/*.+(scss|css|jpg|jpeg|gif|png)'))
.pipe(gulp.dest(libPath));
});
return tasks;
});
gulp.task('webpack', ['lib'], function(done) {
webpack(require('./webpack.config.js')).run(function (err, stats) {
if (err) {
console.log('Error', err);
}
else {
console.log(stats.toString());
}
done();
});
});
gulp.task('lib', ['clean', 'scripts']);
gulp.task('default', ['lib']);
gulp.task('all', ['default', 'webpack']);