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.
Files changed (2) hide show
  1. package/index.js +39 -18
  2. 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 ${stylesCssFile} -->`,
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 rebaseCss() {
342
- return gulp.src(globs.dist + stylesCssFile)
343
- .pipe($.rebaseCssUrls(globs.dist))
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
- rebaseCss.displayName = 'rebase-css';
347
-
348
- function rebaseHtml() {
349
- return gulp.src(globs.distIndexFile)
350
- .pipe($.injectString.replace(` href="${stylesCssFile}"`, ` href="${cssFile}"`))
351
- .pipe(gulp.dest(globs.dist));
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($.postcss([require('cssnano')()]))),
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, rebase, clean, minify, finishBuild
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 = 'minify-' + (str || ext);
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.0.0",
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-rebase-css-urls": "0.0.2",
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",