Advertisement
Guest User

Untitled

a guest
Oct 1st, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.19 KB | None | 0 0
  1. // Gulp packages
  2. var gulp = require('gulp');
  3. var gulpSass = require('gulp-sass');
  4. var gulpSourceMaps = require('gulp-sourcemaps');
  5. var gulpStreamify = require('gulp-streamify');
  6. var gulpUglify = require('gulp-uglify');
  7. var gulpIf = require('gulp-if');
  8. var gulpUtil = require('gulp-util');
  9.  
  10. //
  11. var argv = require('yargs').argv;
  12. var notifier = require('node-notifier');
  13. var browserify = require('browserify');
  14. var babelify = require('babelify');
  15. var watchify = require('watchify');
  16. var source = require('vinyl-source-stream');
  17.  
  18. var destStyles = 'public/css';
  19.  
  20. var CONFIG_PRODUCTION = argv.production;
  21. var debug = (!CONFIG_PRODUCTION)?true:false;
  22.  
  23.  
  24. function swallowError (error) {
  25. console.log(error.toString());
  26. this.emit('end')
  27. }
  28.  
  29. var directNotify = function(title, msg, icon){
  30. title = title || "build";
  31. icon = icon || "_build";
  32.  
  33. notifier.notify({
  34. title: title,
  35. message: msg/*,
  36. icon: __dirname+'/resources/server_assets/'+icon*/
  37. });
  38. };
  39.  
  40. gulp.task('sass', [], function ( next ) {
  41. var startTime = Date.now();
  42. var stream = gulp.src('./client/sass/app.scss')
  43. .pipe( gulpIf( debug, gulpSourceMaps.init( destStyles ) ))
  44. .pipe( gulpSass().on( 'error', gulpSass.logError) )
  45. .pipe( gulpIf( debug, gulpSourceMaps.write() ) )
  46. .pipe( gulp.dest( destStyles ) );
  47.  
  48. stream.on("end", function(){
  49. if(debug){
  50. var endTime = Date.now() - startTime;
  51. directNotify('SASS', endTime+'ms', '_sass.png');
  52. }
  53. });
  54.  
  55. return stream;
  56. });
  57.  
  58. gulp.task('watch', function()
  59. {
  60. if(debug){
  61. gulp.watch('./client/sass/**/*.scss', ['sass']);
  62. gulp.watch('./client/**/*.js' );
  63. //gulp.watch( ['./resources/**/*.jsx', './resources/**/*.js'], ['build']);
  64. //gulp.watch('./locale/**/*.json', ['locale']);
  65. }
  66. });
  67.  
  68. gulp.task('js', function(){
  69. var options = {
  70. appFile : 'app.js',
  71. appBuilder : {
  72. entries: 'client/app.js',
  73. debug: (CONFIG_PRODUCTION)?false:true
  74. },
  75. src: './client/app.js',
  76. dest: './public/js/',
  77. watch: false,
  78. development: true,
  79. devSourceMaps: (CONFIG_PRODUCTION)?false:true
  80. };
  81. var appBundler = browserify(options.appBuilder.entries, options.appBuilder);
  82.  
  83. appBundler.transform( babelify, {presets: ["babel-preset-es2015"]} );
  84.  
  85. var rebundle = function () {
  86. var start = Date.now();
  87. //console.log( gutil.colors.grey('Building APP bundle') );
  88.  
  89. appBundler.bundle()
  90. .on('error', swallowError)
  91. .on('end', function(){
  92. var execTime = (Date.now() - start);
  93. gulpUtil.log( 'App build in', execTime+ ' ms' );
  94. directNotify('App build in', execTime+ ' ms')
  95. })
  96. .pipe( source(options.appFile) )
  97. .pipe( gulpIf(!options.development, gulpStreamify( gulpUglify().on('error', gulpUtil.log) ) ) )
  98. .pipe( gulp.dest(options.dest) );
  99. };
  100.  
  101. appBundler.on('error', function () {
  102. console.log("bundle error", arguments);
  103. });
  104.  
  105. if (!CONFIG_PRODUCTION) {
  106. appBundler = watchify(appBundler);
  107. appBundler.on('update', rebundle);
  108. }
  109.  
  110. // And trigger the initial bundling
  111. rebundle();
  112. });
  113.  
  114. gulp.task('vendors', function ( next ) {
  115. var config = {
  116. cache: {},
  117. packageCache: {},
  118. //extensions: ['.jsx'],
  119. require: [
  120. 'jquery',
  121. 'bootstrap-sass'
  122. ],
  123. debug: debug
  124. };
  125. var startTime = Date.now();
  126. var stream = browserify(config)
  127. .transform(babelify, {presets: ['es2015']})
  128. .bundle()
  129. .pipe( source('vendors.js') )
  130. .pipe( gulp.dest( 'public/js' ) );
  131.  
  132. stream.on("end", function(){
  133. if(debug){
  134. var endTime = Date.now() - startTime;
  135. directNotify('Vendors', endTime+'ms', '_vendors.png');
  136. //gulpLivereload(livereloadConfig);
  137. }
  138. });
  139. return stream;
  140. });
  141.  
  142. var tasks = ['sass', 'js', 'vendors', 'watch'];
  143. gulp.task('default', tasks);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement