gulpfile.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. // include gulp
  2. /**
  3. * @type {Gulp}
  4. */
  5. var gulp = require('gulp');
  6. var path = require('path');
  7. var browserSync = require('browser-sync').create();
  8. // include plugins
  9. var sass = require('gulp-sass');
  10. var cssnano = require('gulp-cssnano');
  11. var sourcemaps = require('gulp-sourcemaps');
  12. var rename = require('gulp-rename');
  13. var jade = require('gulp-jade');
  14. var jadephp = require('gulp-jade-php');
  15. var autoprefixer = require('gulp-autoprefixer');
  16. var concat = require('gulp-concat');
  17. var uglify = require('gulp-uglify');
  18. var plumber = require('gulp-plumber');
  19. var assets_path = 'assets/';
  20. var content_path = 'www/';
  21. var template_path = 'www/';
  22. var localhost = 'medgis.loc';
  23. // compile sass and css files
  24. gulp.task('sass', function () {
  25. return gulp.src([
  26. 'assets/styles/all.scss'
  27. ])
  28. .pipe(sourcemaps.init())
  29. .pipe(plumber())
  30. .pipe(sass().on('error', sass.logError))
  31. .pipe(sourcemaps.write('.'))
  32. .pipe(gulp.dest(path.join(content_path, 'css/')))
  33. .pipe(browserSync.reload({
  34. stream: true
  35. }));
  36. });
  37. gulp.task('css', ['sass'], function () {
  38. return gulp.src(path.join(content_path, 'css/all.css'))
  39. .pipe(plumber())
  40. .pipe(sass().on('error', sass.logError))
  41. .pipe(autoprefixer({
  42. browsers: ['last 50 versions'],
  43. cascade: false
  44. }))
  45. .pipe(cssnano())
  46. .pipe(rename({suffix: '.min'}))
  47. .pipe(gulp.dest(path.join(content_path, 'css/')))
  48. .pipe(browserSync.reload({
  49. stream: true
  50. }));
  51. });
  52. // compile pug for php files
  53. gulp.task('views', function () {
  54. return gulp.src([
  55. 'assets/views/**/*.jade',
  56. '!assets/views/layouts/*.jade'
  57. ])
  58. .pipe(plumber())
  59. .pipe(jadephp({
  60. pretty: '\t'
  61. }))
  62. .pipe(gulp.dest(path.join(template_path)))
  63. .pipe(browserSync.reload({
  64. stream: true
  65. }));
  66. });
  67. // concatenate and minify js
  68. gulp.task('scripts', function () {
  69. return gulp.src([
  70. //'assets/scripts/jquery.js',
  71. 'assets/scripts/lightslider.js',
  72. // 'assets/scripts/lightgallery.js',
  73. 'assets/scripts/moment.js',
  74. 'assets/scripts/daterangepicker.js',
  75. 'assets/scripts/dotdotdot.js',
  76. //'assets/scripts/formstyler.js',
  77. 'assets/scripts/jquery.cookie.min.js',
  78. 'assets/scripts/blind.js',
  79. 'assets/scripts/regionfilter.js',
  80. 'assets/scripts/specfilter.js',
  81. 'assets/scripts/comments.js',
  82. 'assets/scripts/region-selection.js',
  83. 'assets/scripts/doctor-schedule.js',
  84. 'assets/scripts/main.js'
  85. ])
  86. .pipe(plumber())
  87. .pipe(concat('all.min.js'))
  88. .pipe(uglify())
  89. .pipe(gulp.dest(path.join(content_path, 'js/')))
  90. .pipe(browserSync.reload({
  91. stream: true
  92. }));
  93. });
  94. // browser-sync task and settings
  95. gulp.task('browserSync', ['css', 'scripts', 'views'], function () {
  96. browserSync.init({
  97. proxy: "http://medgis.loc/web/assets/app/www/",
  98. port: 8080,
  99. });
  100. });
  101. gulp.task('browserSync2', ['css', 'scripts', 'views'], function () {
  102. browserSync.init({
  103. proxy: "http://medgis.loc/web/www/",
  104. port: 8081,
  105. });
  106. });
  107. // start watchers
  108. gulp.task('watch', ['browserSync'], function () {
  109. gulp.watch('assets/styles/**/*.scss', ['css']);
  110. gulp.watch('assets/views/**/*.jade', ['views']);
  111. gulp.watch('assets/scripts/**/*.js', ['scripts']);
  112. gulp.watch('**/*.php', browserSync.reload);
  113. });
  114. gulp.task('watchru', ['browserSync2'], function () {
  115. gulp.watch('assets/styles/**/*.scss', ['css']);
  116. gulp.watch('assets/views/**/*.jade', ['views']);
  117. gulp.watch('assets/scripts/**/*.js', ['scripts']);
  118. gulp.watch('**/*.php', browserSync.reload);
  119. });
  120. gulp.task('watch-files', function () {
  121. gulp.watch('assets/styles/**/*.scss', ['css']);
  122. gulp.watch('assets/views/**/*.jade', ['views']);
  123. gulp.watch('assets/scripts/**/*.js', ['scripts']);
  124. });