autofront 3.0.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +39 -18
- package/package.json +6 -2
package/index.js
CHANGED
|
@@ -34,6 +34,7 @@ const gulp = require('gulp'),
|
|
|
34
34
|
browserSync = require('browser-sync').create(),
|
|
35
35
|
deleteEmpty = require('delete-empty'),
|
|
36
36
|
gulpHtmlmin = () => $.htmlmin({ collapseWhitespace: true, conservativeCollapse: true }),
|
|
37
|
+
gulpPostcss = name => $.postcss([require(name)()]),
|
|
37
38
|
fs = require('fs'),
|
|
38
39
|
hidefile = require('hidefile');
|
|
39
40
|
|
|
@@ -55,7 +56,6 @@ const allFiles = getGlob(),
|
|
|
55
56
|
jsFile = 'index.js';
|
|
56
57
|
let stylesDir,
|
|
57
58
|
stylesFilename,
|
|
58
|
-
stylesCssFile,
|
|
59
59
|
cssExtensions = [];
|
|
60
60
|
|
|
61
61
|
const globs = {
|
|
@@ -83,7 +83,6 @@ setDefaultEnv.displayName = 'set-default-env';
|
|
|
83
83
|
function setVariables(cb) {
|
|
84
84
|
stylesDir = getSetting('cssFolder');
|
|
85
85
|
stylesFilename = getSetting('filename');
|
|
86
|
-
stylesCssFile = stylesDir + cssFile;
|
|
87
86
|
|
|
88
87
|
for (const cssExt of [
|
|
89
88
|
{
|
|
@@ -322,7 +321,7 @@ function templates() {
|
|
|
322
321
|
|
|
323
322
|
function indexDist() {
|
|
324
323
|
const replaces = Object.entries({
|
|
325
|
-
[cssComment]: `<!-- build:css ${
|
|
324
|
+
[cssComment]: `<!-- build:css ${cssFile} -->`,
|
|
326
325
|
[endCssComment]: '<!-- endbuild -->',
|
|
327
326
|
[jsComment]: `<!-- build:js ${jsFile} defer -->`,
|
|
328
327
|
[endJsComment]: '<!-- endbuild -->'
|
|
@@ -338,21 +337,28 @@ function indexDist() {
|
|
|
338
337
|
}
|
|
339
338
|
indexDist.displayName = 'index:dist';
|
|
340
339
|
|
|
341
|
-
function
|
|
342
|
-
return gulp.src(globs.dist +
|
|
343
|
-
.pipe($.
|
|
340
|
+
function purgeCss() {
|
|
341
|
+
return gulp.src(globs.dist + cssFile)
|
|
342
|
+
.pipe($.purgecss({ content: [globs.dist + getGlob('html')] }))
|
|
344
343
|
.pipe(gulp.dest(globs.dist));
|
|
345
344
|
}
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
function
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
345
|
+
purgeCss.displayName = 'purge-css';
|
|
346
|
+
|
|
347
|
+
function rebase() {
|
|
348
|
+
const str = 'url(',
|
|
349
|
+
quotes = ["'", '"'];
|
|
350
|
+
let stream = gulp.src(globs.dist + cssFile)
|
|
351
|
+
.pipe(replace(str + '\\s*', str));
|
|
352
|
+
for (char of ['', ...quotes])
|
|
353
|
+
for (str2 of ['http://', 'https://', '//', '/', 'data:', '#'])
|
|
354
|
+
stream = stream.pipe(replace(str + char + str2, str + tab + char + str2));
|
|
355
|
+
stream = stream
|
|
356
|
+
.pipe(replace(str, str + stylesDir))
|
|
357
|
+
.pipe(replace(str + stylesDir + tab, str));
|
|
358
|
+
for (quote of quotes)
|
|
359
|
+
stream = stream.pipe(replace(str + stylesDir + quote, str + quote + stylesDir));
|
|
360
|
+
return stream.pipe(gulp.dest(globs.dist));
|
|
352
361
|
}
|
|
353
|
-
rebaseHtml.displayName = 'rebase-html';
|
|
354
|
-
|
|
355
|
-
const rebase = gulp.parallel(rebaseCss, rebaseHtml);
|
|
356
362
|
|
|
357
363
|
function cleanFiles() {
|
|
358
364
|
return gulp.src([
|
|
@@ -371,9 +377,16 @@ cleanFolders.displayName = 'clean-folders';
|
|
|
371
377
|
|
|
372
378
|
const clean = gulp.series(cleanFiles, cleanFolders);
|
|
373
379
|
|
|
380
|
+
const rebaseAndClean = gulp.parallel(rebase, clean);
|
|
381
|
+
|
|
382
|
+
const compatible = gulp.parallel(
|
|
383
|
+
getCompatibleTask('css', stream => stream.pipe(gulpPostcss('autoprefixer'))),
|
|
384
|
+
getCompatibleTask('js', stream => stream.pipe($.babel({ presets: ['@babel/preset-env'], compact: false })))
|
|
385
|
+
);
|
|
386
|
+
|
|
374
387
|
const minify = gulp.parallel(
|
|
375
388
|
getMinifyTask('html', stream => stream.pipe(gulpHtmlmin())),
|
|
376
|
-
getMinifyTask('css', stream => stream.pipe(
|
|
389
|
+
getMinifyTask('css', stream => stream.pipe(gulpPostcss('cssnano'))),
|
|
377
390
|
getMinifyTask('js', stream => {
|
|
378
391
|
if (getSetting('ng'))
|
|
379
392
|
stream = stream.pipe($.ngAnnotate());
|
|
@@ -396,7 +409,7 @@ finishBuild.displayName = 'finish-build';
|
|
|
396
409
|
gulp.task('build', gulp.series(
|
|
397
410
|
setVariables,
|
|
398
411
|
gulp.parallel(buildTmp, removeFolderDist),
|
|
399
|
-
copy, templates, indexDist,
|
|
412
|
+
copy, templates, indexDist, purgeCss, rebaseAndClean, compatible, minify, finishBuild
|
|
400
413
|
));
|
|
401
414
|
|
|
402
415
|
function hideFolderDist(cb) {
|
|
@@ -528,9 +541,17 @@ function browserSyncInit(path) {
|
|
|
528
541
|
browserSync.init({ server: path });
|
|
529
542
|
}
|
|
530
543
|
|
|
544
|
+
function getCompatibleTask(ext, getProcessedStream) {
|
|
545
|
+
return getProcessingTask('compatible', ext, getProcessedStream);
|
|
546
|
+
}
|
|
547
|
+
|
|
531
548
|
function getMinifyTask(ext, getProcessedStream, str) {
|
|
549
|
+
return getProcessingTask('minify', ext, getProcessedStream, str);
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
function getProcessingTask(prefix, ext, getProcessedStream, str) {
|
|
532
553
|
const fn = () => getProcessedStream(gulp.src(globs.dist + getGlob(ext)))
|
|
533
554
|
.pipe(gulp.dest(globs.dist));
|
|
534
|
-
fn.displayName = '
|
|
555
|
+
fn.displayName = prefix + '-' + (str || ext);
|
|
535
556
|
return fn;
|
|
536
557
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "autofront",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"description": "Automation of front-end by Gulp and Bower.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -28,6 +28,9 @@
|
|
|
28
28
|
},
|
|
29
29
|
"homepage": "https://github.com/mvicens/autofront#readme",
|
|
30
30
|
"dependencies": {
|
|
31
|
+
"@babel/core": "7.20.5",
|
|
32
|
+
"@babel/preset-env": "7.20.2",
|
|
33
|
+
"autoprefixer": "10.4.13",
|
|
31
34
|
"browser-sync": "2.27.10",
|
|
32
35
|
"cssnano": "5.1.14",
|
|
33
36
|
"delete-empty": "2.0.0",
|
|
@@ -37,6 +40,7 @@
|
|
|
37
40
|
"gulp-add-files": "1.0.0",
|
|
38
41
|
"gulp-angular-filesort": "1.2.1",
|
|
39
42
|
"gulp-angular-templatecache": "3.0.1",
|
|
43
|
+
"gulp-babel": "8.0.0",
|
|
40
44
|
"gulp-clean": "0.4.0",
|
|
41
45
|
"gulp-cssimport": "7.0.0",
|
|
42
46
|
"gulp-filter": "7.0.0",
|
|
@@ -51,7 +55,7 @@
|
|
|
51
55
|
"gulp-notify": "4.0.0",
|
|
52
56
|
"gulp-postcss": "9.0.1",
|
|
53
57
|
"gulp-pug": "5.0.0",
|
|
54
|
-
"gulp-
|
|
58
|
+
"gulp-purgecss": "5.0.0",
|
|
55
59
|
"gulp-rename": "2.0.0",
|
|
56
60
|
"gulp-rev": "9.0.0",
|
|
57
61
|
"gulp-rev-delete-original": "0.2.3",
|