Advertisement
Guest User

Untitled

a guest
Apr 13th, 2016
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.33 KB | None | 0 0
  1. source = require 'vinyl-source-stream'
  2. buffer = require 'vinyl-buffer'
  3. ftp = require 'vinyl-ftp'
  4. rs = require 'run-sequence'
  5.  
  6. gulp = require 'gulp'
  7. gulpif = require 'gulp-if'
  8. sass = require 'gulp-sass'
  9. gutil = require 'gulp-util'
  10. notify = require 'gulp-notify'
  11. uglify = require 'gulp-uglify'
  12. cssmin = require 'gulp-cssmin'
  13. useref = require 'gulp-useref'
  14. imagemin = require 'gulp-imagemin'
  15.  
  16. browserify = require 'browserify'
  17. babelify = require 'babelify'
  18. watchify = require 'watchify'
  19.  
  20. livereload = require 'gulp-server-livereload'
  21.  
  22. # -----------------------------------------------
  23.  
  24. handleErrors = ->
  25. args = Array.prototype.slice.call arguments
  26.  
  27. notify.onError({
  28. title: 'Compile Error'
  29. message: '<%= error.message %>'
  30. }).apply this, args
  31.  
  32. this.emit 'end'
  33.  
  34. buildScript = (watch) ->
  35. props = {
  36. entries: ['src/js/main.js']
  37. debug: false
  38. transform: [babelify.configure({
  39. presets: ['es2015', 'react']
  40. })]
  41. }
  42.  
  43. bundler = browserify props
  44. bundler = watchify bundler if watch
  45.  
  46. rebundle = ->
  47. stream = bundler.bundle()
  48.  
  49. stream
  50. .on 'error', handleErrors
  51. .pipe source('main.js')
  52. .pipe buffer()
  53. # .pipe uglify()
  54. .pipe gulp.dest('dist/js')
  55. .pipe notify({title:'JS rebuilt'})
  56.  
  57. bundler.on 'update', ->
  58. rebundle()
  59. gutil.log 'Rebundle...'
  60.  
  61. rebundle()
  62.  
  63. # -----------------------------------------------
  64.  
  65. gulp.task 'sass', ->
  66. gulp.src 'src/css/main.sass'
  67. .pipe sass().on('error', sass.logError)
  68. .pipe gulp.dest('dist/css')
  69.  
  70. gulp.task 'html', ->
  71. gulp.src('src/index.html')
  72. .pipe useref()
  73. .pipe gulpif('*.js', uglify())
  74. .pipe gulpif('*.css', cssmin())
  75. .pipe gulp.dest('dist')
  76.  
  77. gulp.task 'js', -> buildScript false
  78.  
  79. gulp.task 'images', ->
  80. gulp.src('src/img/*.{jpg,png}')
  81. .pipe imagemin({
  82. progressive: true
  83. })
  84. .pipe gulp.dest('dist/img')
  85.  
  86. gulp.task 'server', ->
  87. gulp.src('dist')
  88. .pipe livereload({
  89. livereload: true
  90. directoryListing: false
  91. open: true,
  92. fallback: 'index.html'
  93. })
  94.  
  95. gulp.task 'default', ['html', 'server'], ->
  96. buildScript true
  97. gulp.watch ['src/index.html'], ['html']
  98. gulp.watch ['src/css/**/*.sass'], ['sass']
  99. gulp.watch ['src/img/*'], ['images']
  100.  
  101. # -----------------------------------------------
  102.  
  103. gulp.task 'deploy', ->
  104. conn = ftp.create
  105. host: ''
  106. user: ''
  107. pass: ''
  108. parallel: 10
  109. log: gutil.log
  110.  
  111. gulp.src('dist/**', base: 'dist/', buffer: false)
  112. .pipe conn.newer('/')
  113. .pipe conn.dest('/')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement