|
@@ -5,38 +5,79 @@ var reactify = require("reactify");
|
|
|
var browserify = require("browserify");
|
|
|
var source = require("vinyl-source-stream");
|
|
|
var buffer = require("vinyl-buffer");
|
|
|
+var debug = require("gulp-debug");
|
|
|
|
|
|
var config = {
|
|
|
- srcPath: './src/',
|
|
|
- dstPath: './js/',
|
|
|
- minify: false
|
|
|
- };
|
|
|
+ src: './src',
|
|
|
+ dest: './build'
|
|
|
+}
|
|
|
|
|
|
/**** gulp tasks ***************************************************/
|
|
|
+gulp.task('global', function() {
|
|
|
+ var entry = config.src + '/javascript/global.js';
|
|
|
+ var dest = config.dest;
|
|
|
+ var outputName = 'global.js';
|
|
|
+ var files = [
|
|
|
+ 'jquery',
|
|
|
+ {file: 'backbone/node_modules/underscore', expose: 'underscore'}
|
|
|
+ ];
|
|
|
+
|
|
|
+ var b = browserify(entry)
|
|
|
+ .require(files);
|
|
|
+
|
|
|
+ return b.bundle()
|
|
|
+ .pipe(source(outputName))
|
|
|
+ .pipe(gulp.dest(dest));
|
|
|
+});
|
|
|
|
|
|
gulp.task('app', function() {
|
|
|
- var bundler = browserify(config.srcPath + 'app.js');
|
|
|
- bundler.transform(reactify);
|
|
|
-
|
|
|
- if (config.minify)
|
|
|
- return bundler.bundle()
|
|
|
- .pipe(source('app.js'))
|
|
|
- .pipe(buffer())
|
|
|
- .pipe(uglify())
|
|
|
- .pipe(rename({suffix: '.min'}))
|
|
|
- .pipe(gulp.dest(config.dstPath))
|
|
|
- else
|
|
|
- return bundler.bundle()
|
|
|
- .pipe(source('app.js'))
|
|
|
- .pipe(gulp.dest(config.dstPath))
|
|
|
+ var entry = config.src + '/javascript/app.js';
|
|
|
+ var dest = config.dest;
|
|
|
+ var outputName = 'app.js';
|
|
|
+ var modules = ['jquery', 'underscore'];
|
|
|
+
|
|
|
+ var b = browserify(entry)
|
|
|
+ .external(modules)
|
|
|
+ .transform(reactify);
|
|
|
+
|
|
|
+ return b.bundle()
|
|
|
+ .pipe(source(outputName))
|
|
|
+ .pipe(gulp.dest(dest));
|
|
|
+});
|
|
|
+
|
|
|
+gulp.task('htdocs', function() {
|
|
|
+ var src = config.src + '/htdocs/**.html';
|
|
|
+ var dest = config.dest;
|
|
|
+ return gulp.src(src)
|
|
|
+ //.pipe(debug({title: 'unicorn:'}))
|
|
|
+ .pipe(gulp.dest(dest));
|
|
|
});
|
|
|
|
|
|
+gulp.task('css', function() {
|
|
|
+ var src = config.src + '/css/**';
|
|
|
+ var dest = config.dest + '/css';
|
|
|
+ return gulp.src(src)
|
|
|
+ //.pipe(debug({title: 'unicorn:'}))
|
|
|
+ .pipe(gulp.dest(dest));
|
|
|
+});
|
|
|
+
|
|
|
+gulp.task('images', function() {
|
|
|
+ var src = config.src + '/images/**';
|
|
|
+ var dest = config.dest + '/images';
|
|
|
+ return gulp.src(src)
|
|
|
+ .pipe(debug({title: 'unicorn:'}))
|
|
|
+ .pipe(gulp.dest(dest));
|
|
|
+});
|
|
|
+
|
|
|
+
|
|
|
/**** gulp watch ***************************************************/
|
|
|
gulp.task('watch', function() {
|
|
|
- gulp.watch(config.srcPath+"*.js", [ 'app' ]);
|
|
|
+ gulp.watch( config.src + "/javascript/app.js", [ 'app' ]);
|
|
|
+ gulp.watch( config.src + "/htdocs/**.html", [ 'htdocs' ]);
|
|
|
+ gulp.watch( config.src + "/images/**", [ 'images' ]);
|
|
|
+ gulp.watch( config.src + "/css/**", [ 'css' ]);
|
|
|
});
|
|
|
|
|
|
/***** gulp main tasks *********************************************/
|
|
|
-gulp.task('build', ['app']);
|
|
|
-gulp.task('default', ['build']);
|
|
|
-
|
|
|
+gulp.task('build', ['images', 'css', 'htdocs', 'app']);
|
|
|
+gulp.task('default', ['global', 'build']);
|