0
|
1 var gulp = require('gulp'),
|
|
2 sass = require('gulp-sass'),
|
|
3 livereload = require('gulp-livereload'),
|
|
4 php2html = require('gulp-php2html'),
|
|
5 ncp = require('ncp').ncp,
|
|
6 install = require('gulp-install'),
|
|
7 prettify = require('gulp-jsbeautifier'),
|
|
8 prettify2 = require('gulp-html-prettify'),
|
|
9 minify = require('gulp-html-minifier2'),
|
|
10 autoprefixer = require('gulp-autoprefixer'),
|
|
11 sourcemaps = require('gulp-sourcemaps'),
|
|
12 fs = require('fs');
|
|
13
|
|
14
|
|
15 /****************** Dist Min Code ***************************/
|
|
16 gulp.task('html',() => {
|
|
17 gulp.src('index.php')
|
|
18 .pipe(livereload());
|
|
19 });
|
|
20
|
|
21 gulp.task('sass', () => {
|
|
22 gulp.src('./assets/scss/*.scss')
|
|
23 .pipe( sourcemaps.init() )
|
|
24 .pipe(sass().on('error', sass.logError))
|
|
25 .pipe(autoprefixer({
|
|
26 browsers: ['last 2 versions'],
|
|
27 }))
|
|
28 .pipe( sourcemaps.write('') )
|
|
29 .pipe( gulp.dest('assets/css') )
|
|
30 .pipe(livereload());
|
|
31 });
|
|
32 /*********/
|
|
33
|
|
34
|
|
35 /****************** Dist Min Code ***************************/
|
|
36 gulp.task('dist',() => {
|
|
37 fs.mkdir( __dirname + '/dist', function(e) {
|
|
38 if(!e || (e && e.code === 'EEXIST')){
|
|
39 gulp.start('dist-html');
|
|
40 gulp.start('dist-node');
|
|
41 gulp.start('dist-assets');
|
|
42 }
|
|
43 });
|
|
44 });
|
|
45
|
|
46 gulp.task('dist-html', () => {
|
|
47 gulp.src('./*.php')
|
|
48 .pipe( php2html() )
|
|
49 .pipe( minify({
|
|
50 collapseWhitespace: true,
|
|
51 }) )
|
|
52 .pipe( prettify2() )
|
|
53 .pipe(gulp.dest('./dist'));
|
|
54 });
|
|
55
|
|
56 gulp.task('dist-assets', () => {
|
|
57 fs.mkdir( __dirname + '/dist/assets/', function(e) {
|
|
58 if(!e || (e && e.code === 'EEXIST')){
|
|
59 ncp('./assets/', './dist/assets', function(err) {
|
|
60 if (err) {
|
|
61 return console.error(err);
|
|
62 }
|
|
63 console.log('Copying assets done');
|
|
64 });
|
|
65 }
|
|
66 else {
|
|
67 console.log(e);
|
|
68 }
|
|
69 });
|
|
70 fs.mkdir( __dirname + '/dist/email-templates/', function(e) {
|
|
71 if(!e || (e && e.code === 'EEXIST')){
|
|
72 ncp('./email-templates/', './dist/email-templates/', function(err) {
|
|
73 if (err) {
|
|
74 return console.error(err);
|
|
75 }
|
|
76 console.log('Copying email templates done');
|
|
77 });
|
|
78 }
|
|
79 else {
|
|
80 console.log(e);
|
|
81 }
|
|
82 });
|
|
83 ncp('./gulpfile.js', './dist/gulpfile.js', function(err) {
|
|
84 if (err) {
|
|
85 return console.error(err);
|
|
86 }
|
|
87 console.log('Copying gulpfile done');
|
|
88 });
|
|
89 });
|
|
90
|
|
91 gulp.task('dist-node', () => {
|
|
92 gulp.src( __dirname + '/package.json')
|
|
93 .pipe( gulp.dest('./dist') )
|
|
94 .pipe( install({production: true}) );
|
|
95 });
|
|
96 /*********/
|
|
97
|
|
98
|
|
99 /****************** Dist Min Code ***************************/
|
|
100 gulp.task('dist-min',() => {
|
|
101 fs.mkdir( __dirname + '/dist-min', function(e) {
|
|
102 if(!e || (e && e.code === 'EEXIST')){
|
|
103 gulp.start('dist-html-min');
|
|
104 gulp.start('dist-node-min');
|
|
105 gulp.start('dist-assets-min');
|
|
106 }
|
|
107 });
|
|
108 });
|
|
109
|
|
110 gulp.task('dist-html-min', () => {
|
|
111 gulp.src('./*.php')
|
|
112 .pipe( php2html() )
|
|
113 .pipe( minify({
|
|
114 collapseWhitespace: true,
|
|
115 }) )
|
|
116 .pipe(gulp.dest('./dist-min'));
|
|
117 });
|
|
118
|
|
119 gulp.task('dist-assets-min', () => {
|
|
120 fs.mkdir( __dirname + '/dist-min/assets/', function(e) {
|
|
121 if(!e || (e && e.code === 'EEXIST')){
|
|
122 ncp('./assets/', './dist-min/assets', function(err) {
|
|
123 if (err) {
|
|
124 return console.error(err);
|
|
125 }
|
|
126 console.log('Copying assets done');
|
|
127 });
|
|
128 }
|
|
129 else {
|
|
130 console.log(e);
|
|
131 }
|
|
132 });
|
|
133 fs.mkdir( __dirname + '/dist-min/email-templates/', function(e) {
|
|
134 if(!e || (e && e.code === 'EEXIST')){
|
|
135 ncp('./email-templates/', './dist-min/email-templates', function(err) {
|
|
136 if (err) {
|
|
137 return console.error(err);
|
|
138 }
|
|
139 console.log('Copying email templates done');
|
|
140 });
|
|
141 }
|
|
142 else {
|
|
143 console.log(e);
|
|
144 }
|
|
145 });
|
|
146 ncp('./gulpfile.js', './dist-min/gulpfile.js', function(err) {
|
|
147 if (err) {
|
|
148 return console.error(err);
|
|
149 }
|
|
150 console.log('Copying gulpfile done');
|
|
151 });
|
|
152 });
|
|
153
|
|
154 gulp.task('dist-node-min', () => {
|
|
155 gulp.src( __dirname + '/package.json')
|
|
156 .pipe( gulp.dest('./dist-min') )
|
|
157 .pipe( install({production: true}) );
|
|
158 });
|
|
159 /*********/
|
|
160
|
|
161 gulp.task('default', () => {
|
|
162 gulp.watch(['./**/*.scss', '!./node_modules/**'],{ interval: 500 } ,['sass']);
|
|
163 gulp.watch(['./**/*.{html,php,js}', '!./node_modules/**'], { interval: 500 } ,['html']);
|
|
164 livereload.listen();
|
|
165 });
|