Skip to content

Commit 18647fd

Browse files
committed
Update gulp and related libraries
1 parent a0e4787 commit 18647fd

3 files changed

Lines changed: 99 additions & 98 deletions

File tree

assets/src/fonts/.gitkeep

Whitespace-only changes.

gulpfile.js

Lines changed: 83 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -15,24 +15,24 @@
1515
* You should have received a copy of the GNU General Public License
1616
* along with this program. If not, see <https://www.gnu.org/licenses/>.
1717
*/
18+
import { createRequire } from 'module';
19+
const require = createRequire(import.meta.url);
1820

1921
// Librerie NPM richieste per l'esecuzione
20-
const gulp = require('gulp');
21-
const merge = require('merge-stream');
22+
import gulp from 'gulp';
2223
const del = require('del');
2324
const gulpIf = require('gulp-if');
2425
const babel = require('gulp-babel');
2526

2627
// Minificatori
2728
const minifyJS = require('gulp-uglify');
2829
const minifyCSS = require('gulp-clean-css');
29-
const minifyJSON = require('gulp-json-minify');
30+
import autoprefixer from 'gulp-autoprefixer';
3031

3132
// Interpretatori CSS
3233
const sass = require('gulp-sass')(require('sass'));
3334
const less = require('gulp-less');
3435
const stylus = require('gulp-stylus');
35-
const autoprefixer = require('gulp-autoprefixer');
3636

3737
// Concatenatore
3838
const concat = require('gulp-concat');
@@ -42,13 +42,13 @@ const flatten = require('gulp-flatten');
4242
const rename = require('gulp-rename');
4343

4444
// Release
45-
const glob = require('globby');
4645
const md5File = require('md5-file')
47-
const fs = require('fs');
4846
const archiver = require('archiver');
4947
const shell = require('shelljs');
50-
const inquirer = require('inquirer');
5148
const { Readable } = require('stream');
49+
import * as fs from 'fs';
50+
import inquirer from 'inquirer';
51+
import { globby as glob } from 'globby';
5252

5353
// Configurazione
5454
const config = {
@@ -78,6 +78,16 @@ const config = {
7878
};
7979
config.babelOptions.compact = !config.debug;
8080

81+
function waitPipes(pipes, done) {
82+
return Promise.all(
83+
pipes.map(pipe => new Promise((resolve, reject) => {
84+
pipe.on('end', resolve)
85+
}))
86+
).then(function () {
87+
done();
88+
});
89+
}
90+
8191
// Elaborazione e minificazione di JS
8292
const JS = gulp.parallel(() => {
8393
const vendor = [
@@ -139,12 +149,12 @@ const JS = gulp.parallel(() => {
139149
})
140150
.pipe(babel(config.babelOptions))
141151
.pipe(concat('app.min.js'))
142-
.pipe(gulpIf(!config.debug, minifyJS({compress:false})))
152+
.pipe(gulpIf(!config.debug, minifyJS({ compress: false })))
143153
.pipe(gulp.dest(config.production + '/' + config.paths.js));
144154
}, srcJS);
145155

146156
// Elaborazione e minificazione di JS personalizzati
147-
function srcJS() {
157+
export function srcJS(done) {
148158
const js = gulp.src([
149159
config.development + '/' + config.paths.js + '/base/*.js',
150160
])
@@ -161,7 +171,7 @@ function srcJS() {
161171
.pipe(gulpIf(!config.debug, minifyJS()))
162172
.pipe(gulp.dest(config.production + '/' + config.paths.js));
163173

164-
return merge(js, functions);
174+
return waitPipes([js, functions], done);
165175
}
166176

167177
// Elaborazione e minificazione di CSS
@@ -208,7 +218,7 @@ const CSS = gulp.parallel(() => {
208218
}, srcCSS);
209219

210220
// Elaborazione e minificazione di CSS personalizzati
211-
function srcCSS() {
221+
export function srcCSS(done) {
212222
const css = gulp.src([
213223
config.development + '/' + config.paths.css + '/*.{css,scss,less,styl}',
214224
])
@@ -230,17 +240,17 @@ function srcCSS() {
230240
.pipe(gulp.dest(config.production + '/' + config.paths.css));
231241

232242
const themes = gulp.src([
233-
config.development + '/' + config.paths.css + '/themes/*.{css,scss,less,styl}',
234-
config.nodeDirectory + '/admin-lte/dist/css/adminlte.min.css',
235-
])
236-
.pipe(gulpIf('*.scss', sass(), gulpIf('*.less', less(), gulpIf('*.styl', stylus()))))
237-
.pipe(autoprefixer())
238-
.pipe(gulpIf(!config.debug, minifyCSS(config.minifiers.css)))
239-
.pipe(concat('themes.min.css'))
240-
.pipe(flatten())
241-
.pipe(gulp.dest(config.production + '/' + config.paths.css));
242-
243-
return merge(css, print, themes);
243+
config.development + '/' + config.paths.css + '/themes/*.{css,scss,less,styl}',
244+
config.nodeDirectory + '/admin-lte/dist/css/adminlte.min.css',
245+
])
246+
.pipe(gulpIf('*.scss', sass(), gulpIf('*.less', less(), gulpIf('*.styl', stylus()))))
247+
.pipe(autoprefixer())
248+
.pipe(gulpIf(!config.debug, minifyCSS(config.minifiers.css)))
249+
.pipe(concat('themes.min.css'))
250+
.pipe(flatten())
251+
.pipe(gulp.dest(config.production + '/' + config.paths.css));
252+
253+
return waitPipes([css, print, themes], done);
244254
}
245255

246256

@@ -251,27 +261,27 @@ const images = srcImages;
251261
function srcImages() {
252262
return gulp.src([
253263
config.development + '/' + config.paths.images + '/**/*.{jpg,png,jpeg,gif}',
254-
])
264+
], {read: false})
255265
.pipe(gulp.dest(config.production + '/' + config.paths.images));
256266
}
257267

258-
function leaflet() {
259-
gulp.src([
268+
function leaflet(done) {
269+
const leaflet = gulp.src([
260270
config.nodeDirectory + '/leaflet.fullscreen/icon-fullscreen.svg',
261-
]).pipe(gulp.dest(config.production + '/' + config.paths.images + '/leaflet'));
262-
263-
gulp.src([
264271
config.development + '/' + config.paths.images + '/leaflet/*',
265-
]).pipe(gulp.dest(config.production + '/' + config.paths.images + '/leaflet'));
272+
], {read: false})
273+
.pipe(gulp.dest(config.production + '/' + config.paths.images + '/leaflet'));
266274

267-
return gulp.src([
275+
const images = gulp.src([
268276
config.nodeDirectory + '/leaflet/dist/images/*.{jpg,png,jpeg}',
269-
])
277+
], {read: false})
270278
.pipe(flatten())
271279
.pipe(gulp.dest(config.production + '/' + config.paths.images + '/leaflet'));
280+
281+
return waitPipes([images, leaflet], done);
272282
}
273283

274-
function wacom(){
284+
function wacom(done) {
275285
const vendor = [
276286
'modules/clipper-lib/clipper.js',
277287
'modules/js-md5/build/md5.min.js',
@@ -282,7 +292,7 @@ function wacom(){
282292
'modules/rbush/rbush.min.js',
283293
'modules/js-ext/js-ext-min.js',
284294
'modules/digital-ink/digital-ink-min.js',
285-
'common/will/tools.js',
295+
'common/will/tools.js',
286296
'modules/sjcl/sjcl.js',
287297
'common/libs/signature_sdk.js',
288298
'common/libs/signature_sdk_helper.js',
@@ -296,19 +306,20 @@ function wacom(){
296306
vendor[i] = config.development + '/' + config.paths.js + '/wacom/' + vendor[i];
297307
}
298308

299-
gulp.src([
309+
const wasm = gulp.src([
300310
'assets/src/js/wacom/common/libs/signature_sdk.wasm'
301-
])
311+
], {read: false})
302312
.pipe(gulp.dest(config.production + '/' + config.paths.js + '/wacom/'));
303313

304-
return gulp.src(vendor, {
314+
const js = gulp.src(vendor, {
305315
allowEmpty: true
306316
})
307317
.pipe(babel(config.babelOptions))
308318
.pipe(concat('wacom.min.js'))
309319
.pipe(gulpIf(!config.debug, minifyJS()))
310320
.pipe(gulp.dest(config.production + '/' + config.paths.js));
311-
321+
322+
return waitPipes([js, wasm], done);
312323
}
313324

314325
// Elaborazione dei fonts
@@ -331,7 +342,7 @@ const fonts = gulp.parallel(() => {
331342
vendor[i] = config.nodeDirectory + '/' + vendor[i];
332343
}
333344

334-
return gulp.src(vendor)
345+
return gulp.src(vendor, {read: false})
335346
.pipe(flatten())
336347
.pipe(gulp.dest(config.production + '/' + config.paths.fonts));
337348
}, srcFonts);
@@ -340,32 +351,31 @@ const fonts = gulp.parallel(() => {
340351
function srcFonts() {
341352
return gulp.src([
342353
config.development + '/' + config.paths.fonts + '/**/*.{otf,eot,svg,ttf,woff,woff2}',
343-
])
354+
], {read: false})
344355
.pipe(flatten())
345356
.pipe(gulp.dest(config.production + '/' + config.paths.fonts));
346357
}
347358

348-
function ckeditor() {
349-
350-
const ckeditor = gulp.src([
351-
config.nodeDirectory + '/ckeditor4/{adapters,lang,skins,plugins,core}/**/*.{js,json,css,png,gif,html}',
352-
config.nodeDirectory + '/ckeditor4/*.{js,css}',
353-
])
359+
function ckeditor(done) {
360+
const ckeditor = gulp.src([
361+
config.nodeDirectory + '/ckeditor4-full/{adapters,lang,skins,plugins,core}/**/*.{js,json,css,png,gif,html}',
362+
config.nodeDirectory + '/ckeditor4-full/*.{js,css}',
363+
], {read: false})
354364
.pipe(gulp.dest(config.production + '/' + config.paths.js + '/ckeditor'));
355365

356366
const plugins = gulp.src([
357-
config.nodeDirectory + '/ckeditor/plugins/{emoji,autocomplete,textmatch,textwatcher}/**/*.{js,json,css,png,gif,html}',
358-
config.nodeDirectory + '/ckeditor-image-to-base/*.{js,json,css,png,gif,html}',
359-
])
367+
config.nodeDirectory + '/ckeditor4/plugins/{emoji,autocomplete,textmatch,textwatcher}/**/*.{js,json,css,png,gif,html}',
368+
//config.nodeDirectory + '/ckeditor-image-to-base/*.{js,json,css,png,gif,html}',
369+
], {read: false})
360370
.pipe(gulp.dest(config.production + '/' + config.paths.js + '/ckeditor/plugins'));
361371

362-
return merge(ckeditor, plugins);
372+
return waitPipes([ckeditor, plugins], done);
363373
}
364374

365375
function colorpicker() {
366376
return gulp.src([
367377
config.nodeDirectory + '/bootstrap-colorpicker/dist/**/*.{jpg,png,jpeg}',
368-
])
378+
], {read: false})
369379
.pipe(flatten())
370380
.pipe(gulp.dest(config.production + '/' + config.paths.images + '/bootstrap-colorpicker'));
371381
}
@@ -403,44 +413,43 @@ function csrf() {
403413
.pipe(gulp.dest(config.production + '/' + config.paths.js + '/csrf'));
404414
}
405415

406-
function pdfjs() {
416+
function pdfjs(done) {
407417
const web = gulp.src([
408-
config.nodeDirectory + '/pdfjs-viewer-element/dist/pdfjs-4.0.379-dist/web/**/*',
409-
'!' + config.nodeDirectory + '/pdfjs-viewer-element/dist/pdfjs-4.0.379-dist/web/cmaps/*',
410-
'!' + config.nodeDirectory + '/pdfjs-viewer-element/dist/pdfjs-4.0.379-dist/web/*.map',
411-
'!' + config.nodeDirectory + '/pdfjs-viewer-element/dist/pdfjs-4.0.379-dist/web/*.pdf',
412-
])
418+
config.nodeDirectory + '/pdfjs-viewer-element/dist/pdfjs-*-dist/web/**/*',
419+
'!' + config.nodeDirectory + '/pdfjs-viewer-element/dist/pdfjs-*-dist/web/cmaps/*',
420+
'!' + config.nodeDirectory + '/pdfjs-viewer-element/dist/pdfjs-*-dist/web/*.map',
421+
'!' + config.nodeDirectory + '/pdfjs-viewer-element/dist/pdfjs-*-dist/web/*.pdf',
422+
], {read: false})
413423
.pipe(gulp.dest(config.production + '/pdfjs/web'));
414424

415425
const build = gulp.src([
416-
config.nodeDirectory + '/pdfjs-viewer-element/dist/pdfjs-4.0.379-dist/build/*',
417-
'!' + config.nodeDirectory + '/pdfjs-viewer-element/dist/pdfjs-4.0.379-dist/build/*.map',
418-
])
426+
config.nodeDirectory + '/pdfjs-viewer-element/dist/pdfjs-*-dist/build/*',
427+
'!' + config.nodeDirectory + '/pdfjs-viewer-element/dist/pdfjs-*-dist/build/*.map',
428+
], {read: false})
419429
.pipe(gulp.dest(config.production + '/pdfjs/build'));
420430

421-
return merge(web, build);
431+
return waitPipes([web, build], done);
422432
}
423433

424434
function uaparser() {
425435
return gulp.src([
426436
config.nodeDirectory + '/ua-parser-js/dist/icons/mono/**/*',
427437
'!' + config.nodeDirectory + '/ua-parser-js/dist/icons/mono/LICENSE.md',
428-
])
429-
.pipe(gulp.dest(config.production + '/img/icons/'));
438+
], {read: false})
439+
.pipe(gulp.dest(config.production + '/' + config.paths.images + '/icons/'));
430440
}
431441

432442
// Elaborazione e minificazione delle informazioni sull'internazionalizzazione
433443
function i18n() {
434444
return gulp.src([
435445
config.nodeDirectory + '/**/{i18n,lang,locale,locales}/*.{js,json}',
436-
config.development + '/' + config.paths.js + '/i18n/**/*.{js,json}',
446+
//config.development + '/' + config.paths.js + '/i18n/**/*.{js,json}',
437447
config.nodeDirectory + '/moment/min/locales.js',
438448
'!' + config.nodeDirectory + '/**/{src,plugins}/**',
439-
'!' + config.nodeDirectory + '/ckeditor4/**',
440-
'!' + config.nodeDirectory + '/summernote/**',
449+
'!' + config.nodeDirectory + '/ckeditor4-full/**',
450+
//'!' + config.nodeDirectory + '/summernote/**',
441451
'!' + config.nodeDirectory + '/jquery-ui/**',
442452
])
443-
//.pipe(gulpIf('*.js', minifyJS(), gulpIf('*.json', minifyJSON())))
444453
.pipe(gulpIf('!*.min.*', rename({
445454
suffix: '.min'
446455
})))
@@ -452,9 +461,9 @@ function i18n() {
452461

453462

454463
// Operazioni per la release
455-
function release(done) {
464+
export function release(done) {
456465
// Impostazione dello zip
457-
let output = fs.createWriteStream('./release.zip', {flags: 'w'});
466+
let output = fs.createWriteStream('./release.zip', { flags: 'w' });
458467
let archive = archiver('zip');
459468

460469
output.on('close', function () {
@@ -526,14 +535,14 @@ function release(done) {
526535
archive.file('logs/.htaccess', {});
527536

528537
// Aggiunta del file dei checksum
529-
let checksumFile = fs.createWriteStream('./checksum.json', {flags: 'w'});
538+
let checksumFile = fs.createWriteStream('./checksum.json', { flags: 'w' });
530539
checksumFile.write(JSON.stringify(checksum));
531540
checksumFile.close();
532541
archive.file('checksum.json', {});
533542

534543
// Aggiunta del file per il controllo di integrità del database
535544
var bufferStream = new Readable();
536-
545+
537546
bufferStream.push(shell.exec('php update/structure.php', {
538547
silent: true
539548
}).stdout);
@@ -594,25 +603,18 @@ function release(done) {
594603
}).catch(err => {
595604
console.error('Si è verificato un errore:', err);
596605
});
597-
598606
});
599607
}
600608

601609
// Pulizia
602-
function clean() {
610+
export function clean() {
603611
return del([config.production]);
604-
}
612+
};
605613

606614
// Operazioni di default per la generazione degli assets
607-
const bower = gulp.series(clean, gulp.parallel(JS, CSS, images, fonts, ckeditor, colorpicker, i18n, pdfjs, uaparser, hotkeys, chartjs, password_strength, csrf, leaflet, wacom));
608-
609-
// Debug su CSS e JS
610-
exports.srcJS = srcJS;
611-
exports.srcCSS = srcCSS;
615+
export const bower = gulp.series(clean, gulp.parallel(JS, CSS, images, fonts, ckeditor, colorpicker, i18n, pdfjs, hotkeys, chartjs, password_strength, csrf, leaflet, wacom, uaparser));
612616

613-
exports.bower = bower;
614-
exports.release = release;
615-
exports.default = bower;
617+
export default bower;
616618

617619
// Watch task - lanciato con `gulp watch`, resta in attesa e ogni volta che viene modificato un asset in src
618620
// viene aggiornata la dist

0 commit comments

Comments
 (0)