Advertisement
Guest User

Untitled

a guest
May 27th, 2016
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.90 KB | None | 0 0
  1. /* jshint node:true */
  2.  
  3. // Include project requirements.
  4. var gulp = require('gulp'),
  5. jshint = require('gulp-jshint'),
  6. uglify = require('gulp-uglify'),
  7. sass = require('gulp-sass'),
  8. imagemin = require('gulp-imagemin'),
  9. prefix = require('gulp-autoprefixer'),
  10. ftp = require('gulp-ftp'),
  11. lr = require('tiny-lr'),
  12. livereload = require('gulp-livereload'),
  13. server = lr(),
  14. watch = require('gulp-watch');
  15.  
  16. // Sets assets folders.
  17. var dirs = {
  18. js: 'assets/js',
  19. css: 'assets/css',
  20. sass: 'assets/scss',
  21. images: 'assets/img',
  22. fonts: 'assets/fonts',
  23. php: '*.php'
  24. };
  25.  
  26. gulp.task('scripts', function() {
  27. // Hint all JavaScript.
  28. gulp.src(dirs.js + '/client/*.js')
  29. .pipe(jshint())
  30. .pipe(jshint.reporter('default'));
  31.  
  32. // Minify and copy all JavaScript.
  33. gulp.src(dirs.js + '/client/*.js')
  34. .pipe(uglify())
  35. .pipe(gulp.dest(dirs.js + '/build'))
  36. .pipe(livereload(server));;
  37. });
  38.  
  39. gulp.task('sass', function() {
  40. // Compile all SCSS files.
  41. gulp.src(dirs.sass + '/*.scss')
  42. .pipe(sass({
  43. outputStyle: 'nested',
  44. includePaths : ['assets/scss'],
  45. errLogToConsole: true,
  46. sourceComments: 'normal',
  47. onSuccess: function(css){
  48. console.log(css)
  49. },
  50. onError: function(error) {
  51. console.log(error);
  52. },
  53. }))
  54. .pipe(prefix("last 1 version", "> 1%", "ie 8", "Android 4", "iOS 6"))
  55. .pipe(gulp.dest(dirs.css))
  56. .pipe(livereload(server));
  57. });
  58.  
  59. gulp.task('php', function(){
  60. gulp.src(dirs.php)
  61. .pipe(livereload(server));
  62. });
  63.  
  64. gulp.task('optimize', function() {
  65. // Optimize all images.
  66. gulp.src(dirs.images + '/*.{png,jpg,gif}').pipe(imagemin({
  67. optimizationLevel: 7,
  68. progressive: true
  69. })).pipe(gulp.dest(dirs.images));
  70. });
  71.  
  72. // Deploy to ftp, except scss, unminified js, node_modules
  73. gulp.task('deploy', function(){
  74. gulp.src(['*', '**/**', '!assets/scss/**', '!assets/js/client/**', '!node_modules/**', '!gulpfile.js', '!*.sublime-project', '!*.sublime-workspace', '!package.json', '!.gitignore'])
  75. .pipe(ftp({
  76. host: 'your-host.tld',
  77. user: 'username',
  78. pass: 'password',
  79. remotePath: '/path/to/your/themefolder'
  80. }));
  81. });
  82.  
  83. gulp.task('watch', function() {
  84. // init livereloadserver
  85. server.listen(35729, function (err) {
  86. if (err) return console.log(err);
  87.  
  88. gulp.watch(dirs.php, function() {
  89. gulp.run('php');
  90. });
  91.  
  92. // Watch JavaScript changes.
  93. gulp.watch(dirs.js + '/client/*.js', function() {
  94. gulp.run('scripts');
  95. });
  96.  
  97. // Watch SCSS changes.
  98. gulp.watch(dirs.sass + '/**', function() {
  99. gulp.run('sass');
  100. });
  101. });
  102. });
  103.  
  104. gulp.task('default', function() {
  105. // Compile all assets.
  106. gulp.run('scripts', 'sass');
  107. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement