gulpfile.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /**
  2. * @Author: Bachir Soussi Chiadmi <bach>
  3. * @Date: 20-12-2017
  4. * @Email: bachir@figureslibres.io
  5. * @Filename: gulpfile.js
  6. * @Last modified by: bach
  7. * @Last modified time: 20-12-2017
  8. * @License: GPL-V3
  9. */
  10. 'use strict';
  11. var gulp = require('gulp');
  12. var gulpif = require('gulp-if');
  13. var sass = require('gulp-sass');
  14. var watch = require('gulp-watch');
  15. var autoprefixer = require('gulp-autoprefixer');
  16. var jsmin = require('gulp-jsmin');
  17. var cssmin = require('gulp-cssmin');
  18. var rename = require('gulp-rename');
  19. // var mainBowerFiles = require('main-bower-files');
  20. var es = require('event-stream');
  21. var modules = ['edlp_corpus', 'edlp_studio', 'edlp_search'];
  22. // to get minified assets run `gulp --env=prod`
  23. var argv = require('minimist')(process.argv.slice(2));
  24. console.dir(argv);
  25. var prod = argv.env == 'prod' ? true : false;
  26. function handleError(err) {
  27. console.log(err.toString());
  28. }
  29. gulp.task('scripts', function () {
  30. var tasks = modules.map(function(module) {
  31. return gulp.src('./'+module+'/assets/scripts/*.js')
  32. .pipe(gulpif(prod, jsmin()))
  33. // .pipe(jsmin())
  34. .pipe(rename({suffix: '.min'}))
  35. .pipe(gulp.dest('./'+module+'/assets/dist/scripts/'));
  36. });
  37. return es.merge.apply(null, tasks);
  38. });
  39. gulp.task('styles', function () {
  40. var tasks = modules.map(function(module) {
  41. return gulp.src('./'+module+'/assets/styles/*.scss')
  42. .pipe(sass().on('error', sass.logError))
  43. .pipe(autoprefixer({
  44. browsers: ['last 2 versions'],
  45. cascade: false
  46. })).on('error', handleError)
  47. .pipe(gulpif(prod, cssmin()))
  48. // .pipe(cssmin())
  49. .pipe(rename({suffix: '.min'}))
  50. .pipe(gulp.dest('./'+module+'/assets/dist/styles/'));
  51. });
  52. return es.merge.apply(null, tasks);
  53. });
  54. // default gulp task
  55. gulp.task('default', ['scripts', 'styles'], function() { //'bower',
  56. for (var i = 0; i < modules.length; i++) {
  57. // gulp.watch('./assets/styles/*/*.scss', ['styles']);
  58. gulp.watch('./'+modules[i]+'/assets/styles/*.scss', ['styles']);
  59. gulp.watch('./'+modules[i]+'/assets/scripts/*.js', ['scripts']);
  60. }
  61. });