Advertisement
moonion_nashivan

gulp

Mar 18th, 2016
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var SERVER_IP = process.env.SERVER_IP || '54.201.210.241:9080';
  2.  
  3. var gulp = require('gulp');
  4. var gutil = require('gulp-util');
  5. var sourcemaps = require('gulp-sourcemaps');
  6. var minifyCSS = require('gulp-minify-css');
  7. var less = require('gulp-less');
  8. var autoprefixer = require('gulp-autoprefixer');
  9.  
  10. var source = require('vinyl-source-stream');
  11. var buffer = require('vinyl-buffer');
  12. var browserify = require('browserify');
  13. var babelify = require('babelify');
  14. var uglify = require('gulp-uglify');
  15. var es2015Preset = require('babel-preset-es2015');
  16. var stringify = require('stringify');
  17. var replace = require('gulp-replace');
  18.  
  19. var htmlmin = require('gulp-html-minifier');
  20.  
  21. function errorHandler(message) {
  22.   gutil.log(gutil.colors.red(message));
  23.   this.emit('end');
  24. }
  25.  
  26. function compileStyles() {
  27.   return gulp.src('./src/index.less')
  28.     .pipe(sourcemaps.init())
  29.     .pipe(less({ compress: true }))
  30.     .pipe(autoprefixer('last 2 versions'))
  31.     .pipe(minifyCSS({ keepBreaks: false }))
  32.     .pipe(sourcemaps.write('./', { sourceRoot: './', includeContent: false }))
  33.     .on('error', errorHandler)
  34.     .pipe(gulp.dest('./dist'));
  35. }
  36.  
  37. function compileScripts() {
  38.   return browserify('./src/app.js', { debug: true })
  39.     .transform(stringify({
  40.       extensions: ['.tpl'],
  41.       minify: true
  42.     }))
  43.     .transform(babelify, {
  44.       presets: [es2015Preset]
  45.     })
  46.     .bundle()
  47.     .pipe(source('app.js'))
  48.     .pipe(replace('54.201.210.241:9080', SERVER_IP))
  49.     .pipe(buffer())
  50.     // .pipe(sourcemaps.init({ loadMaps: true }))
  51.     // .pipe(uglify())
  52.     // .on('error', errorHandler)
  53.     // .pipe(sourcemaps.write('./'))
  54.     .pipe(gulp.dest('./dist'));
  55. }
  56.  
  57. function compileHtml() {
  58.   return gulp.src('./src/**/*.html')
  59.     .pipe(htmlmin({ collapseWhitespace: true }))
  60.     .pipe(gulp.dest('./dist'));
  61. }
  62.  
  63. var allAssets = [
  64.   './src/**/*.png',
  65.   './src/**/*.jpg',
  66.   './src/**/*.ico',
  67.   './src/**/*.ttf',
  68.   './src/robots.txt',
  69.   './node_modules/bootstrap-less/assets/fonts/bootstrap/*'
  70. ];
  71.  
  72. function copyAssets(sourceFiles) {
  73.   return gulp.src(allAssets)
  74.     .pipe(gulp.dest('./dist'));
  75. }
  76.  
  77. gulp.task('styles',      compileStyles);
  78. gulp.task('scripts',     compileScripts);
  79. gulp.task('templates',   compileHtml);
  80. gulp.task('copy-assets', copyAssets);
  81.  
  82. gulp.task('watch', function () {
  83.   gulp.watch(['./src/**/*.js', './src/**/*.tpl'],   ['scripts']);
  84.   gulp.watch('./src/**/*.less', ['styles']);
  85.   gulp.watch('./src/**/*.html', ['templates']);
  86.   gulp.watch(allAssets,    ['copy-assets']);
  87. });
  88.  
  89. gulp.task('build', ['styles', 'scripts', 'templates', 'copy-assets']);
  90.  
  91. gulp.task('default', ['build', 'watch']);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement