forked from mykhailo-ivankiv/RIA
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
67 lines (55 loc) · 1.99 KB
/
gulpfile.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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
var gulp = require("gulp");
var babel = require("gulp-babel");
var plumber = require("gulp-plumber");
var sass = require('gulp-sass');
// For CSS
var autoprefixer = require("gulp-autoprefixer");
var DIST_FOLDER = "dist";
gulp.task("process-mock", function () {
return gulp.src(["src/mock/**/*.json"])
.pipe(gulp.dest(DIST_FOLDER + "/mock"))
});
gulp.task("process-style", function () {
return gulp.src(["src/**/*.scss"])
.pipe(plumber())
.pipe(sass())
.pipe(autoprefixer({
browsers: ["last 2 versions"],
cascade: false
}))
.pipe(plumber.stop())
.pipe(gulp.dest(DIST_FOLDER))
});
gulp.task("process-client-scripts", function () {
return gulp.src(["src/**/*.js", "!src/app.js"])
.pipe(plumber())
.pipe(babel({modules: "amd", optional: ["es7.classProperties"], blacklist: ["useStrict"]}))
.pipe(plumber.stop())
.pipe(gulp.dest(DIST_FOLDER));
});
gulp.task("process-vendor-scripts", function() {
//Copy vendors lib TODO: fix it
return gulp.src([
"node_modules/reflux/dist/reflux.js",
"node_modules/react/dist/react.js",
"node_modules/react/dist/react-with-addons.js",
"node_modules/whatwg-fetch/fetch.js",
"node_modules/requirejs/require.js",
"node_modules/immutable/dist/immutable.min.js"
])
.pipe(gulp.dest(DIST_FOLDER + "/vendors"));
});
gulp.task("process-server-scripts", function() {
return gulp.src(["src/app.js"])
.pipe(plumber())
.pipe(babel({optional: ["es7.classProperties"]}))
.pipe(plumber.stop())
.pipe(gulp.dest(DIST_FOLDER));
});
gulp.task("process-scripts", ["process-vendor-scripts", "process-client-scripts", "process-server-scripts"])
gulp.task("default", ["process-scripts"]);
gulp.task("watch",["process-scripts", "process-style", "process-mock"], function() {
gulp.watch("src/**/*.js", ["process-client-scripts", "process-server-scripts"]);
gulp.watch("src/**/*.scss", ["process-style"]);
gulp.watch("src/mock/**/*.json", ["process-mock"]);
});