comparison default/gulpfile.js @ 0:1d038bc9b3d2 default tip

Up:default
author Liny <dev@neowd.com>
date Sat, 31 May 2025 09:21:51 +0800
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:1d038bc9b3d2
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 });