xkeshav

gulpfile.js

Jul 25th, 2016
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var gulp = require('gulp');
  2. var source = require('vinyl-source-stream');
  3. var browserSync = require('browser-sync').create();
  4. var mainBowerFiles = require('main-bower-files');
  5. var es = require('event-stream');
  6. var wiredep = require('wiredep').stream;
  7.  
  8. var $ = require("gulp-load-plugins")({
  9.   pattern: ['gulp-*', 'gulp.*', 'browserify**'],
  10.   replaceString: /\bgulp[\-.]/
  11. });
  12.  
  13. var onError = function (err) {
  14.     $.util.log($.util.colors.red('Error (' + err.plugin + '): ' + err.message));
  15. };
  16.  
  17. var src = './app/';
  18. var dest = './public/';
  19.  
  20. //---------------TASK begins -------------------------
  21.  
  22.     gulp.task('lint', function() {
  23.         return gulp.src('./app/**/*.js')
  24.             .pipe($.jshint())
  25.             .pipe($.jshint.reporter('default'))
  26.             // .pipe($.notify({ message: 'JS Hinting task complete' }))
  27.     });
  28.  
  29.     gulp.task('browserify', function() {
  30.         return $.browserify('./app/app.js')
  31.             .bundle()
  32.             .pipe(source('main.js'))
  33.             .pipe(gulp.dest(dest));
  34.     });
  35.  
  36.     gulp.task('copy', ['browserify'], function() {
  37.         return gulp.src(['app/**/*.html','./app/**/*.css','./app/*.json'])
  38.             .pipe(gulp.dest(dest))
  39.             .pipe(browserSync.stream());
  40.     });
  41.  
  42.     gulp.task('inject', ['lint', 'copy'] , function () {
  43.       var target = gulp.src('./app/index.html');
  44.       var js_source = gulp.src('./app/**/*.js')
  45.                         .pipe($.sourcemaps.init())
  46.                         .pipe($.plumber())
  47.                         .pipe($.uglify({ mangle: false, compress:true, output: { beautify: false } }).on('error', onError))
  48.                         .pipe($.plumber.stop())
  49.                         .pipe($.concat('vendor.js'))
  50.                         .pipe($.rename({suffix: '.min'}))
  51.                         .pipe($.sourcemaps.write())
  52.                         .pipe(gulp.dest(dest));
  53.       return target
  54.             .pipe($.inject(
  55.                 gulp.src(mainBowerFiles(),{read: false}), {name: 'bower', relative: true}))
  56.             .pipe($.inject(js_source,{relative: true}))
  57.             .pipe($.inject(
  58.                  gulp.src('bower_components/**/*.css', {read: false}), {relative: true}))
  59.             .pipe(gulp.dest(dest))
  60.     });
  61.  
  62.     gulp.task('browser-sync', ['inject'], function() {
  63.         browserSync.init({
  64.             startPath:'public',
  65.             server: {
  66.                 baseDir: './'
  67.             },
  68.             browser: ["firefox"]
  69.         });
  70.     });
  71.  
  72.     gulp.task('default', ['browser-sync'], function(){
  73.         $.util.log('Default is running...');
  74.         gulp.watch("./app/**/*.*", ["inject"]);
  75.         gulp.watch("./public/**/*.*").on('change', browserSync.reload);
  76.     })
Add Comment
Please, Sign In to add comment