Advertisement
Guest User

Untitled

a guest
Jul 29th, 2015
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.30 KB | None | 0 0
  1. 'use strict';
  2.  
  3. var gulp = require('gulp');
  4. var gutil = require('gulp-util');
  5. var less = require('gulp-less');
  6. var sourcemaps = require('gulp-sourcemaps');
  7. var browserify = require('browserify');
  8. var babelify = require('babelify');
  9. var source = require('vinyl-source-stream');
  10. var buffer = require('vinyl-buffer');
  11. var exorcist = require('exorcist');
  12. var watchify = require('watchify');
  13. var _ = require('lodash');
  14.  
  15. var paths = {
  16. assetPath: 'app/assets',
  17.  
  18. scriptIn: ['app/assets/js/main.js'],
  19. scriptOut: 'target/web/public/main/js',
  20.  
  21. styleIn: ['app/assets/css/main.less', 'node_modules/id7/less/id7.less'],
  22. styleOut: 'target/web/public/main/css',
  23. };
  24.  
  25. var browserifyOptions = {
  26. entries: paths.scriptIn,
  27. debug: true, // confusingly, this enables sourcemaps
  28. transform: [ babelify ] // Transforms ES6 + JSX into normal JS
  29. };
  30.  
  31. // Function for running Browserify on JS, since
  32. // we reuse it a couple of times.
  33. var bundle = function(browserify) {
  34. browserify.bundle()
  35. .on('error', gutil.log.bind(gutil, 'Browserify Error'))
  36. .pipe(exorcist(paths.scriptOut + "/bundle.js.map"))
  37. .pipe(source('bundle.js'))
  38. // If you wanted to add further Gulp processing, you could add these
  39. //.pipe(buffer())
  40. //.pipe(sourcemaps.init({loadMaps: true}))
  41. //.pipe(uglify()) // plus whatever else
  42. //.pipe(sourcemaps.write('.'))
  43. .pipe(gulp.dest(paths.scriptOut))
  44. }
  45.  
  46. gulp.task('scripts', [], function() {
  47. var b = browserify(browserifyOptions);
  48. return bundle(b);
  49. });
  50.  
  51. // Recompile scripts on changes. Watchify is more efficient than
  52. // grunt.watch as it knows how to do incremental rebuilds.
  53. gulp.task('watch-scripts', [], function() {
  54. var bw = watchify(browserify(_.assign({}, watchify.args, browserifyOptions)));
  55. bw.on('update', function() { bundle(bw); });
  56. bw.on('log', gutil.log);
  57. return bundle(bw);
  58. });
  59.  
  60. gulp.task('styles', function() {
  61. return gulp.src(paths.styleIn)
  62. .pipe(sourcemaps.init())
  63. .pipe(less())
  64. .pipe(sourcemaps.write('.'))
  65. .pipe(gulp.dest(paths.styleOut))
  66. });
  67.  
  68. // Recompile LESS on changes
  69. gulp.task('watch-styles', function() {
  70. return gulp.watch(paths.assetPath+'/css/**/*.less', ['styles']);
  71. })
  72.  
  73. // Shortcuts for building all asset types at once
  74. gulp.task('assets', ['scripts','styles']);
  75. gulp.task('watch-assets', ['watch-scripts','watch-styles']);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement