gulpfile.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. 'use strict';
  2. const gulp = require('gulp');
  3. const concat = require('gulp-concat');
  4. const merge2 = require('merge2');
  5. const minifyCss = require('gulp-minify-css');
  6. const gulpFilter = require('gulp-filter');
  7. const del = require('del');
  8. const templateCache = require('./scripts/templateCache');
  9. const i18n = require('./scripts/i18n');
  10. gulp.task('templates', function () {
  11. return merge2([
  12. gulp.src('src/cache.js'),
  13. gulp.src('src/**/templates/*.html').pipe(templateCache()),
  14. ]).pipe(concat('cache.js'))
  15. .pipe(gulp.dest('dist'));
  16. });
  17. gulp.task('clean', function () {
  18. return del(['dist']);
  19. });
  20. gulp.task('copy-files', function () {
  21. const cssFilter = gulpFilter(['**/*.css'], {restore: true});
  22. return gulp.src([
  23. 'src/**',
  24. '!src/cache.js',
  25. '!src/**/templates/**',
  26. '!src/**/templates',
  27. '!src/_locales/**',
  28. ])
  29. .pipe(cssFilter)
  30. .pipe(minifyCss())
  31. .pipe(cssFilter.restore)
  32. .pipe(gulp.dest('dist/'));
  33. });
  34. gulp.task('copy-i18n', function () {
  35. return gulp.src([
  36. 'src/**/*.js',
  37. 'src/**/*.html',
  38. 'src/**/*.json',
  39. ]).pipe(i18n.extract({
  40. base: 'src',
  41. prefix: '_locales',
  42. touchedOnly: true,
  43. useDefaultLang: true,
  44. markUntouched: false,
  45. }))
  46. .pipe(gulp.dest('dist'));
  47. });
  48. gulp.task('default', ['templates', 'copy-files', 'copy-i18n']);
  49. gulp.task('i18n', function () {
  50. return gulp.src([
  51. 'src/**/*.js',
  52. 'src/**/*.html',
  53. 'src/**/*.json',
  54. ]).pipe(i18n.extract({
  55. base: 'src',
  56. prefix: '_locales',
  57. touchedOnly: false,
  58. useDefaultLang: false,
  59. markUntouched: true,
  60. }))
  61. .pipe(gulp.dest('src'));
  62. });