bundle vendor files
This commit is contained in:
		
							
								
								
									
										74
									
								
								gulpfile.js
									
									
									
									
									
								
							
							
						
						
									
										74
									
								
								gulpfile.js
									
									
									
									
									
								
							@@ -14,7 +14,9 @@ var Rx = require('rx'),
 | 
			
		||||
  sortKeys = require('sort-keys'),
 | 
			
		||||
  debug = require('debug')('freecc:gulp'),
 | 
			
		||||
  yargs = require('yargs'),
 | 
			
		||||
  concat = require('gulp-concat'),
 | 
			
		||||
  uglify = require('gulp-uglify'),
 | 
			
		||||
  merge = require('merge-stream'),
 | 
			
		||||
 | 
			
		||||
  // react app
 | 
			
		||||
  webpack = require('gulp-webpack'),
 | 
			
		||||
@@ -70,6 +72,33 @@ var paths = {
 | 
			
		||||
    dest: 'public/js'
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  vendorChallenges: [
 | 
			
		||||
    'public/bower_components/jshint/dist/jshint.js',
 | 
			
		||||
    'public/bower_components/chai/chai.js',
 | 
			
		||||
    'public/bower_components/CodeMirror/lib/codemirror.js',
 | 
			
		||||
    'public/bower_components/CodeMirror/addon/edit/closebrackets.js',
 | 
			
		||||
    'public/bower_components/CodeMirror/addon/edit/matchbrackets.js',
 | 
			
		||||
    'public/bower_components/CodeMirror/addon/lint/lint.js',
 | 
			
		||||
    'public/bower_components/CodeMirror/addon/lint/javascript-lint.js',
 | 
			
		||||
    'public/bower_components/CodeMirror/mode/javascript/javascript.js',
 | 
			
		||||
    'public/bower_components/CodeMirror/mode/xml/xml.js',
 | 
			
		||||
    'public/bower_components/CodeMirror/mode/css/css.js',
 | 
			
		||||
    'public/bower_components/CodeMirror/mode/htmlmixed/htmlmixed.js',
 | 
			
		||||
    'public/bower_components/CodeMirror/addon/emmet/emmet.js'
 | 
			
		||||
  ],
 | 
			
		||||
 | 
			
		||||
  vendorMain: [
 | 
			
		||||
    'public/bower_components/jquery/dist/jquery.min.js',
 | 
			
		||||
    'public/bower_components/bootstrap/dist/js/bootstrap.min.js',
 | 
			
		||||
    'public/bower_components/angular/angular.min.js',
 | 
			
		||||
    'public/bower_components/angular-bootstrap/ui-bootstrap.min.js',
 | 
			
		||||
    'public/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js',
 | 
			
		||||
    'public/bower_components/d3/d3.min.js',
 | 
			
		||||
    'public/bower_components/moment/min/moment.min.js',
 | 
			
		||||
    'public/bower_components/lightbox2/dist/js/lightbox.min.js',
 | 
			
		||||
    'public/bower_components/rxjs/dist/rx.all.min.js'
 | 
			
		||||
  ],
 | 
			
		||||
 | 
			
		||||
  js: [
 | 
			
		||||
    'client/main.js',
 | 
			
		||||
    'client/iFrameScripts.js',
 | 
			
		||||
@@ -297,7 +326,7 @@ gulp.task('less', function() {
 | 
			
		||||
  var dest = paths.css;
 | 
			
		||||
  return gulp.src(paths.less)
 | 
			
		||||
    .pipe(plumber({ errorHandler: errorHandler }))
 | 
			
		||||
    // copile
 | 
			
		||||
    // compile
 | 
			
		||||
    .pipe(less({
 | 
			
		||||
      paths: [ path.join(__dirname, 'less', 'includes') ]
 | 
			
		||||
    }))
 | 
			
		||||
@@ -315,12 +344,52 @@ gulp.task('less', function() {
 | 
			
		||||
    .pipe(gulp.dest(paths.manifest));
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
function getFilesGlob(files) {
 | 
			
		||||
  if (!__DEV__) {
 | 
			
		||||
    return files;
 | 
			
		||||
  }
 | 
			
		||||
  return files.map(function(file) {
 | 
			
		||||
    return file
 | 
			
		||||
      .replace('.min.', '.')
 | 
			
		||||
      // moment breaks the pattern
 | 
			
		||||
      .replace('/min/', '/');
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
gulp.task('vendor', ['js'], function() {
 | 
			
		||||
  var manifestName = 'js-manifest.json';
 | 
			
		||||
  var dest = paths.publicJs;
 | 
			
		||||
 | 
			
		||||
  var vendorFiles = merge(
 | 
			
		||||
    gulp.src(getFilesGlob(paths.vendorMain))
 | 
			
		||||
      .pipe(concat('vendor-main.js')),
 | 
			
		||||
    gulp.src(paths.vendorChallenges)
 | 
			
		||||
      .pipe(__DEV__ ? gutil.noop() : uglify())
 | 
			
		||||
      .pipe(concat('vendor-challenges.js'))
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
  return vendorFiles.pipe(gulp.dest(dest))
 | 
			
		||||
    // create registry file
 | 
			
		||||
    .pipe(rev())
 | 
			
		||||
    // copy revisioned assets to dest
 | 
			
		||||
    .pipe(gulp.dest(dest))
 | 
			
		||||
    // create manifest file
 | 
			
		||||
    .pipe(rev.manifest(manifestName))
 | 
			
		||||
    .pipe(delRev(
 | 
			
		||||
      dest,
 | 
			
		||||
      manifestName
 | 
			
		||||
    ))
 | 
			
		||||
    // copy manifest file to dest
 | 
			
		||||
    .pipe(gulp.dest(paths.manifest));
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
gulp.task('js', function() {
 | 
			
		||||
  var manifestName = 'js-manifest.json';
 | 
			
		||||
  var dest = paths.publicJs;
 | 
			
		||||
 | 
			
		||||
  return gulp.src(paths.js)
 | 
			
		||||
    .pipe(plumber({ errorHandler: errorHandler }))
 | 
			
		||||
    .pipe(__DEV__ ? gutil.noop() : uglify())
 | 
			
		||||
    .pipe(gulp.dest(dest))
 | 
			
		||||
    // create registry file
 | 
			
		||||
    .pipe(rev())
 | 
			
		||||
@@ -348,6 +417,7 @@ gulp.task('dependents', ['js'], function() {
 | 
			
		||||
 | 
			
		||||
  return gulp.src(paths.dependents)
 | 
			
		||||
    .pipe(plumber({ errorHandler: errorHandler }))
 | 
			
		||||
    .pipe(__DEV__ ? gutil.noop() : uglify())
 | 
			
		||||
    .pipe(revReplace({ manifest: manifest }))
 | 
			
		||||
    .pipe(gulp.dest(dest))
 | 
			
		||||
    .pipe(rev())
 | 
			
		||||
@@ -374,7 +444,7 @@ function buildManifest() {
 | 
			
		||||
    .pipe(gulp.dest('server/'));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var buildDependents = ['less', 'js', 'dependents'];
 | 
			
		||||
var buildDependents = ['less', 'js', 'dependents', 'vendor'];
 | 
			
		||||
 | 
			
		||||
gulp.task('build-manifest', buildDependents, function() {
 | 
			
		||||
  return buildManifest();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user