]> git.agnieray.net Git - galette.git/blob - gulpfile.js
Start gulpfile.js rewrite
[galette.git] / gulpfile.js
1 var gulp = require('gulp'),
2 del = require('del'),
3 uglify = require('gulp-uglify'),
4 cleanCSS = require('gulp-clean-css'),
5 merge = require('merge-stream'),
6 concat = require('gulp-concat'),
7 replace = require('gulp-replace')
8 ;
9
10 var paths = {
11 galette: {
12 modules: './node_modules/',
13 public: './galette/webroot/assets/'
14 },
15 css: {
16 main: [
17 './galette/webroot/themes/default/galette.css',
18 './node_modules/summernote/dist/summernote-lite.min.css'
19 ]
20 },
21 js: {
22 main: [
23 './node_modules/jquery/dist/jquery.js',
24 './node_modules/js-cookie/dist/js.cookie.min.js',
25 './node_modules/summernote/dist/summernote-lite.min.js',
26 './galette/webroot/js/common.js'
27 ],
28 chartjs: [
29 './node_modules/chart.js/dist/chart.min.js',
30 './node_modules/chartjs-plugin-autocolors/dist/chartjs-plugin-autocolors.min.js',
31 './node_modules/chartjs-plugin-datalabels/dist/chartjs-plugin-datalabels.min.js'
32 ],
33 sortablejs: [
34 './node_modules/sortablejs/Sortable.min.js'
35 ]
36 },
37 extras: [
38 {
39 src: './node_modules/summernote/dist/font/*',
40 dest: '/webfonts/'
41 }, {
42 src: './node_modules/summernote/dist/lang/*.min.js',
43 dest: '/js/lang/'
44 }
45 ]
46 };
47
48 function clean() {
49 return del([paths.galette.public]);
50 }
51
52 function styles() {
53 var _dir = paths.galette.public + '/css/';
54
55 main = gulp.src(paths.css.main)
56 .pipe(replace('url(images/', 'url(../images/'))
57 .pipe(replace('url(font/', 'url(../webfonts/'))
58 .pipe(cleanCSS())
59 .pipe(concat('galette-main.bundle.min.css'))
60 .pipe(gulp.dest(_dir));
61
62 return merge(main);
63 }
64
65 function scripts() {
66 var _dir = paths.galette.public + '/js/';
67
68 main = gulp.src(paths.js.main)
69 .pipe(concat('galette-main.bundle.min.js'))
70 .pipe(uglify())
71 .pipe(gulp.dest(_dir));
72
73 chartjs = gulp.src(paths.js.chartjs)
74 .pipe(concat('galette-chartjs.bundle.min.js'))
75 .pipe(gulp.dest(_dir));
76
77 sortablejs = gulp.src(paths.js.sortablejs)
78 .pipe(concat('galette-sortablejs.bundle.min.js'))
79 .pipe(gulp.dest(_dir));
80
81 return merge(main, chartjs, sortablejs);
82 }
83
84 function extras() {
85 main = paths.extras.map(function (extra) {
86 return gulp.src(extra.src)
87 .pipe(gulp.dest(paths.galette.public + extra.dest));
88 }
89 );
90
91 return merge(main);
92 }
93
94 exports.clean = clean;
95 exports.styles = styles;
96 exports.scripts = scripts;
97 exports.extras = extras;
98
99 var build = gulp.series(clean, styles, scripts, extras);
100 exports.default = build;