gulpfile.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. 'use strict';
  2. var gulp = require('gulp');
  3. var util = require('gulp-util');
  4. var sass = require('gulp-sass');
  5. var watch = require('gulp-watch');
  6. var autoprefixer = require('gulp-autoprefixer');
  7. var jsmin = require('gulp-jsmin');
  8. var cssmin = require('gulp-cssmin');
  9. var rename = require('gulp-rename');
  10. var mainBowerFiles = require('main-bower-files');
  11. var jsonToSass = require('gulp-json-to-sass');
  12. var concat = require('gulp-concat');
  13. var through = require('through2');
  14. var svgmin = require('gulp-svgmin');
  15. // var fs = require('fs');
  16. // var json2js = require('gulp-json2js');
  17. // var data = require('gulp-data');
  18. // var shared_variables = JSON.parse(fs.readFileSync('./assets/json/shared_variables.json'));
  19. function handleError(err) {
  20. console.log(err.toString());
  21. }
  22. var config = {
  23. assetsDir : './assets',
  24. production: !!util.env.production
  25. }
  26. gulp.task('vars2sass', function () {
  27. gulp.src('./assets/json/shared_variables.json')
  28. .pipe(jsonToSass({
  29. jsonPath: './assets/json/shared_variables.json',
  30. scssPath: './assets/styles/base/_shared_variables.scss'
  31. }));
  32. });
  33. // this one is not working, works first run but then it's like it's caching the source
  34. // gulp.task('variables2js', function() {
  35. // gulp.src('./assets/scripts/shared_variables_model.js')
  36. // .pipe(rename('shared_variables.js'))
  37. // .pipe(data(function(file) {
  38. // delete require.cache['./assets/json/shared_variables.json'];
  39. // return require('./assets/json/shared_variables.json');
  40. // }))
  41. // .pipe(json2js())
  42. // .pipe(gulp.dest('./assets/scripts/'));
  43. // });
  44. gulp.task('vars2js', function() {
  45. gulp.src('./assets/json/shared_variables.json')
  46. .pipe(rename('shared_variables.js'))
  47. .pipe(through.obj(function (file, enc, cb) {
  48. // console.log('file',String(file.contents));
  49. // small pipe to wrappe json data into a js variable
  50. file.contents = new Buffer("edlp_vars = "+String(file.contents).trim()+";");
  51. cb(null, file);
  52. }))
  53. .pipe(gulp.dest('./assets/scripts/'));
  54. });
  55. gulp.task('scripts', function () {
  56. gulp.src(['./assets/scripts/shared_variables.js','./assets/scripts/main.js'])
  57. .pipe(concat('main.js'))
  58. .pipe(config.production ? jsmin() : util.noop())
  59. .pipe(rename({suffix: '.min'}))
  60. .pipe(gulp.dest('./assets/dist/scripts/'));
  61. });
  62. gulp.task('styles', function () {
  63. gulp.src('./assets/styles/app.scss')
  64. .pipe(sass().on('error', sass.logError))
  65. .pipe(autoprefixer({
  66. browsers: ['last 2 versions'],
  67. cascade: false
  68. })).on('error', handleError)
  69. .pipe(config.production ? cssmin() : util.noop())
  70. .pipe(rename({suffix: '.min'}))
  71. .pipe(gulp.dest('./assets/dist/styles/'));
  72. });
  73. gulp.task('bower', function() {
  74. gulp.src(mainBowerFiles({
  75. "overrides":{
  76. "history.js":{
  77. "main":"./scripts/bundled/html4+html5/jquery.history.js"
  78. },
  79. "overlayScrollbars":{
  80. "main":[
  81. "./js/jquery.overlayScrollbars.min.js",
  82. "./css/OverlayScrollbars.min.css"
  83. ]
  84. },
  85. "masonry-layout":{
  86. "main":"./dist/masonry.pkgd.min.js"
  87. },
  88. "imagesloaded":{
  89. "main":"./imagesloaded.pkgd.min.js"
  90. },
  91. "jquery":{"ignore":true},
  92. "ev-emitter":{"ignore":true},
  93. "fizzy-ui-utils":{"ignore":true},
  94. "get-size":{"ignore":true},
  95. "outlayer":{"ignore":true},
  96. }
  97. }))
  98. .pipe(gulp.dest('./assets/dist/bower/'));
  99. });
  100. gulp.task('svg', function () {
  101. gulp.src(['./assets/img/*.svg', '!./assets/img/edlp-loader-anim.svg'])
  102. .pipe(svgmin())
  103. .pipe(gulp.dest('./assets/dist/img'));
  104. gulp.src('./assets/img/edlp-loader-anim.svg')
  105. .pipe(gulp.dest('./assets/dist/img'));
  106. });
  107. // {
  108. // plugins:[
  109. // {removeHiddenElems: false},
  110. // {cleanupIDs: false},
  111. // {removeUselessDefs: false},
  112. // ]
  113. // }
  114. // removeHiddenElems, cleanupIDs, removeUselessDefs.
  115. // default gulp task
  116. gulp.task('default', ['bower', 'vars2js', 'scripts', 'vars2sass', 'styles', 'svg'], function() {
  117. gulp.watch('./assets/json/*.json', ['vars2js', 'vars2sass', 'styles', 'scripts']);
  118. gulp.watch('./assets/styles/*.scss', ['styles']);
  119. gulp.watch('./assets/styles/base/*.scss', ['styles']);
  120. gulp.watch('./assets/scripts/*.js', ['scripts']);
  121. gulp.watch('./assets/img/*.svg', ['svg']);
  122. });