-
Notifications
You must be signed in to change notification settings - Fork 0
/
gulpfile.babel.js
127 lines (108 loc) · 4.28 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
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
import chug from 'gulp-chug';
import gulp from 'gulp';
import yargs from 'yargs';
import upath from 'upath';
import concat from 'gulp-concat';
import uglify from 'gulp-uglify';
import gulpif from 'gulp-if';
import cleanCSS from 'gulp-clean-css';
const env = process.env.GULP_ENV;
const { argv } = yargs
.options({
rootPath: {
description: '<path> path to web assets directory',
type: 'string',
requiresArg: true,
required: false,
},
nodeModulesPath: {
description: '<path> path to node_modules directory',
type: 'string',
requiresArg: true,
required: false,
},
});
const config = [
'--rootPath',
argv.rootPath || '../../../../../../../public/assets',
'--nodeModulesPath',
argv.nodeModulesPath || '../../../../../../../node_modules',
];
const appConfig = [
'--rootPath',
'../public/assets',
'--nodeModulesPath',
'../node_modules',
];
export const buildAdmin = function buildAdmin() {
return gulp.src('vendor/sylius/sylius/src/Sylius/Bundle/AdminBundle/gulpfile.babel.js', { read: false })
.pipe(chug({ args: config, tasks: 'build' }));
};
buildAdmin.description = 'Build admin assets.';
export const watchAdmin = function watchAdmin() {
return gulp.src('vendor/sylius/sylius/src/Sylius/Bundle/AdminBundle/gulpfile.babel.js', { read: false })
.pipe(chug({ args: config, tasks: 'watch' }));
};
watchAdmin.description = 'Watch admin asset sources and rebuild on changes.';
export const buildShop = function buildShop() {
return gulp.src('vendor/sylius/sylius/src/Sylius/Bundle/ShopBundle/gulpfile.babel.js', { read: false })
.pipe(chug({ args: config, tasks: 'build' }));
};
buildShop.description = 'Build shop assets.';
export const watchShop = function watchShop() {
return gulp.src('vendor/sylius/sylius/src/Sylius/Bundle/ShopBundle/gulpfile.babel.js', { read: false })
.pipe(chug({ args: config, tasks: 'watch' }));
};
watchShop.description = 'Watch shop asset sources and rebuild on changes.';
/** Custom **/
export const buildAppAdmin = function buildAppAdmin() {
return gulp.src('gulp_tasks/admin.babel.js', { read: false })
.pipe(chug({ args: appConfig, tasks: 'build' }));
};
buildAppAdmin.description = 'Build app admin assets.';
export const watchAppAdmin = function watchAppAdmin() {
return gulp.src('gulp_tasks/admin.babel.js', { read: false })
.pipe(chug({ args: appConfig, tasks: 'watch' }));
};
watchAppAdmin.description = 'Watch app admin asset sources and rebuild on changes.';
export const buildAppShop = function buildAppShop() {
return gulp.src('gulp_tasks/shop.babel.js', { read: false })
.pipe(chug({ args: appConfig, tasks: 'build' }));
};
buildAppShop.description = 'Build app shop assets.';
export const watchAppShop = function watchAppShop() {
return gulp.src('gulp_tasks/shop.babel.js', { read: false })
.pipe(chug({ args: appConfig, tasks: 'watch' }));
};
watchAppShop.description = 'Watch app shop asset sources and rebuild on changes.';
export const optimizeShopJs = function optimizeShopJs() {
return gulp.src([
upath.normalizeSafe('./public/assets/shop/js/app.js'),
])
.pipe(concat('app.min.js'))
.pipe(gulpif(env === 'prod', uglify()))
.pipe(gulp.dest(upath.normalizeSafe('./public/assets/shop/js')));
};
export const optimizeShopCss = function optimizeShopCss() {
return gulp.src([
upath.normalizeSafe('./public/assets/shop/css/app.css'),
])
.pipe(concat('app.min.css'))
.pipe(gulpif(env === 'prod', cleanCSS({ compatibility: 'ie8' })))
.pipe(gulp.dest(upath.normalizeSafe('./public/assets/shop/css')));
};
export const build = gulp.series(gulp.parallel(buildAdmin, buildShop, buildAppAdmin, buildAppShop), optimizeShopJs, optimizeShopCss);
build.description = 'Build assets.';
export const watch = gulp.parallel(watchAdmin, watchShop, watchAppAdmin, watchAppShop);
watch.description = 'Watch asset sources and rebuild on changes.';
gulp.task('admin', buildAdmin);
gulp.task('admin-watch', watchAdmin);
gulp.task('shop', buildShop);
gulp.task('shop-watch', watchShop);
gulp.task('app-admin', buildAppAdmin);
gulp.task('app-admin-watch', watchAppAdmin);
gulp.task('app-shop', buildAppShop);
gulp.task('app-shop-watch', watchAppShop);
gulp.task('app-optimize-shop-js', optimizeShopJs);
gulp.task('app-optimize-shop-css', optimizeShopCss);
export default build;