/build/gulp/tasks/collect.js

https://github.com/potzenheimer/meetshaus · JavaScript · 111 lines · 83 code · 23 blank · 5 comment · 0 complexity · b81d39925d61b0a4938a7a3e0fa6a6bc MD5 · raw file

  1. import gulp from 'gulp';
  2. import pump from 'pump';
  3. import gulpLoadPlugins from 'gulp-load-plugins';
  4. const $ = gulpLoadPlugins();
  5. var es = require('event-stream');
  6. var cfg = require('./../config.json');
  7. var styleSourcesVendor = {
  8. 'vendor': cfg.styles.src
  9. }
  10. var scriptSourcesVendor = {
  11. 'vendor': cfg.scripts.src
  12. }
  13. var scriptSourcesApp = {
  14. 'app': cfg.scripts.app
  15. }
  16. var styleCollectionVendor = Object.keys(styleSourcesVendor);
  17. var scriptCollectionVendor = Object.keys(scriptSourcesVendor);
  18. var scriptCollectionApp = Object.keys(scriptSourcesApp);
  19. styleCollectionVendor.forEach(function (libName) {
  20. gulp.task( 'styles:'+libName, function () {
  21. return gulp.src(styleSourcesVendor[libName], {'cwd': cfg.paths.src})
  22. .pipe(gulp.dest(cfg.paths.app + 'scss/vendors/'));
  23. });
  24. });
  25. gulp.task('collect:styles:vendor',
  26. gulp.parallel(
  27. styleCollectionVendor.map(function(name) { return 'styles:'+name; })
  28. )
  29. );
  30. scriptCollectionVendor.forEach(function (libName) {
  31. gulp.task( 'scripts:'+libName, function () {
  32. return gulp.src(scriptSourcesVendor[libName], {'cwd': cfg.paths.src})
  33. .pipe(gulp.dest(cfg.paths.dist + 'scripts/'));
  34. });
  35. });
  36. gulp.task('collect:scripts:vendor',
  37. gulp.parallel(
  38. scriptCollectionVendor.map(function(name) { return 'scripts:'+name; })
  39. )
  40. );
  41. scriptCollectionApp.forEach(function (libName) {
  42. gulp.task( 'scripts:'+libName, function () {
  43. return gulp.src(scriptSourcesApp[libName], {'cwd': cfg.paths.app })
  44. // .pipe(babel({
  45. // presets: ['@babel/env']
  46. // }))
  47. .pipe(gulp.dest(cfg.paths.dist + 'scripts/'));
  48. });
  49. });
  50. gulp.task('collect:scripts:app',
  51. gulp.parallel(
  52. scriptCollectionApp.map(function(name) { return 'scripts:'+name; })
  53. )
  54. );
  55. export function collectImages() {
  56. return gulp.src(cfg.paths.app + 'assets/images/**/*')
  57. .pipe($.if($.if.isFile, $.cache($.imagemin({
  58. progressive: true,
  59. interlaced: true,
  60. // don't remove IDs from SVGs, they are often used
  61. // as hooks for embedding and styling
  62. svgoPlugins: [{cleanupIDs: false}]
  63. }))
  64. .on('error', function (err) {
  65. console.log(err);
  66. this.end();
  67. })))
  68. .pipe(gulp.dest(cfg.paths.dist + 'assets/images'));
  69. };
  70. gulp.task('collect:images', collectImages);
  71. export function collectFavicon() {
  72. return gulp.src(cfg.paths.app + 'assets/ico/**/*')
  73. .pipe(gulp.dest(cfg.paths.dist + 'assets/ico'));
  74. };
  75. collectFavicon().description = 'Copy favicon to distribution directory';
  76. gulp.task('collect:favicon', collectFavicon);
  77. export function collectFonts() {
  78. return gulp.src(cfg.paths.app + 'assets/fonts/**/*')
  79. .pipe(gulp.dest(cfg.paths.dist + 'assets/fonts'));
  80. };
  81. collectFonts.description = 'Copy custom web fonts to distribution directory';
  82. gulp.task('collect:fonts', collectFonts);
  83. export function collectHtml() {
  84. return gulp.src(cfg.paths.dev + '{,*/}*.html')
  85. .pipe($.minifyHtml())
  86. .pipe(gulp.dest(cfg.paths.dist));
  87. };
  88. gulp.task('collect:html', collectHtml);