Advertisement
Guest User

gulpfile

a guest
Aug 1st, 2017
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var gulp           = require('gulp'),
  2.         gutil          = require('gulp-util' ),
  3.         sass           = require('gulp-sass'),
  4.         browserSync    = require('browser-sync'),
  5.         concat         = require('gulp-concat'),
  6.         uglify         = require('gulp-uglify'),
  7.         cleanCSS       = require('gulp-clean-css'),
  8.         rename         = require('gulp-rename'),
  9.         del            = require('del'),
  10.         imagemin       = require('gulp-imagemin'),
  11.         cache          = require('gulp-cache'),
  12.         autoprefixer   = require('gulp-autoprefixer'),
  13.         ftp            = require('vinyl-ftp'),
  14.         notify         = require("gulp-notify");
  15.  
  16. // Скрипты проекта
  17. gulp.task('delnode', function() { return del.sync('node_modules'); });
  18.  
  19. gulp.task('common-js', function() {
  20.     return gulp.src([
  21.         'app/js/common.js',
  22.         ])
  23.     .pipe(concat('common.min.js'))
  24.     .pipe(uglify())
  25.     .pipe(gulp.dest('app/js'));
  26. });
  27.  
  28. gulp.task('scripts', ['common-js'], function() {
  29.     return gulp.src([
  30.         'app/libs/jquery/dist/jquery.min.js',
  31.         'app/libs/owl.carousel/owl.carousel.min.js',
  32.         'app/libs/slick-nav/dist/jquery.slicknav.js',
  33.         'app/libs/magnific-popup/dist/jquery.magnific-popup.min.js',
  34.         'app/libs/fotorama/fotorama.js',
  35.         'app/libs/equalHeights/equalheights.js',
  36.         'app/libs/blankshield/blankshield.min.js',
  37.         'app/js/common.min.js', // Всегда в конце
  38.         ])
  39.     .pipe(concat('scripts.min.js'))
  40.     // .pipe(uglify()) // Минимизировать весь js (на выбор)
  41.     .pipe(gulp.dest('app/js'))
  42.     .pipe(browserSync.reload({stream: true}));
  43. });
  44.  
  45. gulp.task('browser-sync', function() {
  46.     browserSync({
  47.         server: {
  48.             baseDir: 'app'
  49.         },
  50.         notify: false,
  51.         // tunnel: true,
  52.         // tunnel: "projectmane", //Demonstration page: http://projectmane.localtunnel.me
  53.     });
  54. });
  55.  
  56. gulp.task('sass', function() {
  57.     return gulp.src('app/sass/**/*.sass')
  58.     .pipe(sass().on("error", notify.onError()))
  59.     .pipe(rename({suffix: '.min', prefix : ''}))
  60.     .pipe(autoprefixer(['last 15 versions']))
  61.     .pipe(cleanCSS())
  62.     .pipe(gulp.dest('app/css'))
  63.     .pipe(browserSync.reload({stream: true}));
  64. });
  65.  
  66. gulp.task('watch', ['sass', 'scripts', 'browser-sync'], function() {
  67.     gulp.watch('app/sass/**/*.sass', ['sass']);
  68.     gulp.watch(['libs/**/*.js', 'app/js/common.js'], ['scripts']);
  69.     gulp.watch('app/*.html', browserSync.reload);
  70. });
  71.  
  72. gulp.task('imagemin', function() {
  73.     return gulp.src('app/img/**/*')
  74.     .pipe(cache(imagemin()))
  75.     .pipe(gulp.dest('../assets/dist/img'));
  76. });
  77.  
  78. gulp.task('build', ['removedist', 'imagemin', 'sass', 'scripts'], function() {
  79.  
  80.     /*var buildFiles = gulp.src([
  81.         'app/*.html',
  82.         'app/.htaccess',
  83.         ]).pipe(gulp.dest('../assets/dist'));*/
  84.  
  85.     var buildCss = gulp.src([
  86.         'app/css/main.min.css',
  87.         'app/css/header.min.css'
  88.         ]).pipe(gulp.dest('../assets/dist/css'));
  89.  
  90.     var buildJs = gulp.src([
  91.         'app/js/scripts.min.js',
  92.         ]).pipe(gulp.dest('../assets/dist/js'));
  93.  
  94.     var buildFonts = gulp.src([
  95.         'app/fonts/**/*',
  96.         ]).pipe(gulp.dest('../assets/dist/fonts'));
  97.  
  98. });
  99.  
  100. gulp.task('deploy', function() {
  101.  
  102.     var conn = ftp.create({
  103.         host:      'hostname.com',
  104.         user:      'username',
  105.         password:  'userpassword',
  106.         parallel:  10,
  107.         log: gutil.log
  108.     });
  109.  
  110.     var globs = [
  111.     '../assets/dist/**',
  112.     '../assets/dist/.htaccess',
  113.     ];
  114.     return gulp.src(globs, {buffer: false})
  115.     .pipe(conn.dest('/path/to/folder/on/server'));
  116.  
  117. });
  118.  
  119. gulp.task('removedist', function() { return del.sync('dist'); });
  120. gulp.task('clearcache', function () { return cache.clearAll(); });
  121.  
  122. gulp.task('default', ['watch']);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement