gulpfile.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. var gulp = require('gulp');
  2. var gutil = require('gulp-util');
  3. var sass = require('gulp-sass');
  4. var concat = require('gulp-concat');
  5. var modernizr = require('gulp-modernizr');
  6. var sourcemaps = require('gulp-sourcemaps');
  7. var uglify = require('gulp-uglify');
  8. var browserify = require('browserify');
  9. var source = require('vinyl-source-stream');
  10. var buffer = require('vinyl-buffer');
  11. var to5ify = require('6to5ify');
  12. var bs = require('browser-sync').create();
  13. // //----------------------------------------------- Configs
  14. var paths = {
  15. sass: {
  16. src: './dev-assets/styles/**/*.{scss,sass}',
  17. main: './dev-assets/styles/main.scss',
  18. dest: './css'
  19. }
  20. };
  21. // ---------------------------------------------- Browser init
  22. gulp.task('init-live-reload', function() {
  23. bs.init({
  24. // server: { baseDir: './'},
  25. // proxy: "localhost/",
  26. // browser: 'firefox'
  27. })
  28. });
  29. // ---------------------------------------------- Gulp Tasks
  30. gulp.task('styles', function(done){
  31. return gulp.src([
  32. paths.sass.main
  33. ])
  34. .pipe(sass(
  35. {includePaths: ['./node_modules/foundation-sites/scss']}
  36. ))
  37. .pipe(concat('app.css'))
  38. .pipe(gulp.dest(paths.sass.dest))
  39. .pipe(bs.stream());
  40. done();
  41. });
  42. //browserify
  43. gulp.task('scripts', function(done){
  44. // browserify('./dev-assets/main.js')
  45. // .transform(to5ify)
  46. // .bundle()
  47. // .pipe(source('app.js'))
  48. // .pipe(uglify())
  49. // .pipe(gulp.dest('./js'));
  50. var bundleStream = browserify([
  51. './dev-assets/scripts/main.js'
  52. ], { debug: true })
  53. .transform(to5ify)
  54. .bundle();
  55. bundleStream
  56. .pipe(source('app.js'))
  57. .pipe(buffer())
  58. .pipe(sourcemaps.init({loadMaps: true}))
  59. .pipe(uglify())
  60. .pipe(sourcemaps.write('./'))
  61. .pipe(gulp.dest('./js'))
  62. .pipe(bs.stream());
  63. done();
  64. })
  65. // ------------------------------------ Gulp Default Behavior
  66. gulp.task('default', gulp.series(['styles','scripts'], function(done) {
  67. console.log("default");
  68. done();
  69. }));
  70. // ---------------------------------------------- Gulp Watch
  71. gulp.task('watch:scripts', function () {
  72. gulp.watch('./dev-assets/scripts/**/*.js', gulp.series('scripts'));
  73. });
  74. gulp.task('watch:styles', function () {
  75. gulp.watch(paths.sass.src, gulp.series('styles'));
  76. });
  77. gulp.task('watch:templates', function () {
  78. gulp.watch('./templates/**/*.html.twig').on('change', bs.reload);
  79. });
  80. gulp.task('watch', gulp.series('styles',
  81. gulp.parallel(['watch:styles','watch:scripts','watch:templates'])
  82. ));
  83. gulp.task('watch-sync', gulp.parallel(['init-live-reload','watch'], function(done) {
  84. console.log("watch is starting");
  85. done();
  86. }));