Advertisement
Guest User

Untitled

a guest
Apr 18th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.66 KB | None | 0 0
  1. 'use strict';
  2.  
  3. var gulp = require('gulp');
  4. var ftp = require('vinyl-ftp');
  5. var sass = require('gulp-sass');
  6. var browserSync = require('browser-sync').create();
  7. var insertLines = require('gulp-insert-lines');
  8.  
  9. var baseDir = './src/';
  10. var rmteDir = '/public_html';
  11.  
  12. gulp.task('html', function() {
  13. return gulp.src(baseDir + 'index.html')
  14. .pipe(insertLines({
  15. 'before': /<\/head>$/,
  16. 'lineBefore': '\t<script type="text/javascript" src="js/script.js"></script>'
  17. }))
  18. .pipe(gulp.dest('dist'))
  19. .pipe(browserSync.stream());
  20. });
  21.  
  22. // create a task that ensures the `html` task is complete before
  23. // reloading browsers
  24. gulp.task('html-watch', ['html'], function (done) {
  25. browserSync.reload();
  26. done();
  27. });
  28.  
  29. // Compile sass into CSS & auto-inject into browsers
  30. gulp.task('sass', function() {
  31. return gulp.src(baseDir + 'scss/*.scss')
  32. .pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))
  33. .pipe(gulp.dest('dist/css'))
  34. .pipe(browserSync.stream());
  35. });
  36.  
  37. // create a task that ensures the `sass` task is complete before
  38. // reloading browsers
  39. gulp.task('sass-watch', ['sass'], function (done) {
  40. browserSync.reload();
  41. done();
  42. });
  43.  
  44. // process JS files and return the stream.
  45. gulp.task('js', function () {
  46. return gulp.src(baseDir + 'js/*js')
  47. .pipe(gulp.dest('dist/js'));
  48. });
  49.  
  50. // create a task that ensures the `js` task is complete before
  51. // reloading browsers
  52. gulp.task('js-watch', ['js'], function (done) {
  53. browserSync.reload();
  54. done();
  55. });
  56.  
  57. // use default task to launch Browsersync and watch JS files
  58. gulp.task('default', ['js', 'html', 'sass'], function () {
  59.  
  60. // Serve files from the root of this project
  61. browserSync.init({
  62. server: {
  63. baseDir: './dist'
  64. }
  65. });
  66.  
  67. // add browserSync.reload to the tasks array to make
  68. // all browsers reload after tasks are complete.
  69. gulp.watch(baseDir + 'index.html', ['html-watch']);
  70. gulp.watch(baseDir + 'js/*.js', ['js-watch']);
  71. gulp.watch(baseDir + 'scss/*.scss', ['sass-watch']);
  72. });
  73.  
  74. gulp.task('deploy', function(){
  75.  
  76. console.log('\n\tStart deploying.....\n');
  77.  
  78. var conn = ftp.create({
  79. host: '',
  80. user: '',
  81. password: '',
  82. parallel: 10
  83. });
  84.  
  85. console.log('\tConnected.\n');
  86.  
  87. var globs = ['./dist/**'];
  88.  
  89. // using base = '.' will transfer everything to /public_html correctly
  90. // turn off buffering in gulp.src for best performance
  91. return gulp.src(globs, { base: './dist/', buffer: false })
  92. .pipe(conn.newer(rmteDir))
  93. .pipe(conn.dest(rmteDir))
  94. .pipe(conn.clean(rmteDir + '/**', './dist', rmteDir));
  95. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement