separate watch task added for the styles, compiles all styles not only default

This commit is contained in:
revazi 2016-10-05 16:27:03 +04:00
parent e3123d7c45
commit a0beb0bc6c
2 changed files with 102 additions and 59 deletions

View File

@ -186,47 +186,89 @@ gulp.task('chat-styles', ['chat-styles-handlebars', 'chat-styles-js'], function(
// Compile and concatenate handlebars files for all chat styles.
gulp.task('chat-styles-handlebars', function() {
// TODO: Process all available styles, not only the default one.
var stylePath = config.chatStylesPath + '/default';
return gulp.src(stylePath + '/templates_src/client_side/**/*.handlebars')
.pipe(handlebars({
// Use specific version of Handlebars.js
handlebars: handlebarsEngine
}))
.pipe(wrapHandlebarsTemplate())
.pipe(concat('templates.js'))
.pipe(uglify({preserveComments: 'some'}))
.pipe(header(config.compiledTemplatesHeader))
.pipe(gulp.dest(stylePath + '/templates_compiled/client_side'));
var promises = [];
fs.readdir(config.chatStylesPath, function(err, list){
if(err) return done(err);
list.filter(function(path){
return fs.lstatSync(config.chatStylesPath + "/" + path).isDirectory();
}).map(function(dir){
var defer = Q.defer();
var pipeline = gulp.src(config.chatStylesPath + '/' + dir + '/templates_src/client_side/**/*.handlebars')
.pipe(handlebars({
// Use specific version of Handlebars.js
handlebars: handlebarsEngine
}))
.pipe(wrapHandlebarsTemplate())
.pipe(concat('templates.js'))
.pipe(uglify({preserveComments: 'some'}))
.pipe(header(config.compiledTemplatesHeader))
.pipe(gulp.dest(config.chatStylesPath + '/' + dir + '/templates_compiled/client_side'));
pipeline.on('end',function(){
defer.resolve();
});
promises.push(defer.promise);
});
});
return Q.all(promises);
});
// Compile and concatenate js files for all chat styles.
gulp.task('chat-styles-js', function() {
// TODO: Process all available styles, not only the default one.
var stylePath = config.chatStylesPath + '/default';
var promises = [];
fs.readdir(config.chatStylesPath, function(err, list){
if(err) return done(err);
list.filter(function(path){
return fs.lstatSync(config.chatStylesPath + "/" + path).isDirectory();
}).map(function(dir){
var defer = Q.defer();
var pipeline = gulp.src(config.chatStylesPath + '/' + dir + '/js/source/**/*.js')
.pipe(concat('scripts.js'))
.pipe(uglify({preserveComments: 'some'}))
.pipe(gulp.dest(config.chatStylesPath + '/' + dir + '/js/compiled'));
pipeline.on('end', function(){
defer.resolve();
});
promises.push(defer.promise);
});
});
return gulp.src(stylePath + '/js/source/**/*.js')
.pipe(concat('scripts.js'))
.pipe(uglify({preserveComments: 'some'}))
.pipe(gulp.dest(stylePath + '/js/compiled'));
return Q.all(promises);
});
// Performs all job related with pages styles.
gulp.task('page-styles', function() {
// TODO: Process all available styles, not only the default one.
var stylePath = config.pageStylesPath + '/default';
var promises = [];
fs.readdir(config.pageStylesPath, function(err, list){
if(err) return done(err);
list.filter(function(path){
return fs.lstatSync(config.pageStylesPath + "/" + path).isDirectory();
}).map(function(dir){
var defer = Q.defer();
var pipeline = gulp.src(config.pageStylesPath + '/' + dir + '/templates_src/client_side/**/*.handlebars')
.pipe(handlebars({
// Use specific version of Handlebars.js
handlebars: handlebarsEngine
}))
.pipe(wrapHandlebarsTemplate())
.pipe(concat('templates.js'))
.pipe(uglify({preserveComments: 'some'}))
.pipe(header(config.compiledTemplatesHeader))
.pipe(gulp.dest(config.pageStylesPath + '/' + dir + '/templates_compiled/client_side'));
pipeline.on('end', function(){
defer.resolve();
});
promises.push(defer.promise);
});
});
return gulp.src(stylePath + '/templates_src/client_side/**/*.handlebars')
.pipe(handlebars({
// Use specific version of Handlebars.js
handlebars: handlebarsEngine
}))
.pipe(wrapHandlebarsTemplate())
.pipe(concat('templates.js'))
.pipe(uglify({preserveComments: 'some'}))
.pipe(header(config.compiledTemplatesHeader))
.pipe(gulp.dest(stylePath + '/templates_compiled/client_side'));
return Q.all(promises);
});
// Watch styles
gulp.task('watch', [], function(){
gulp.watch(config.pageStylesPath + '/**/*.handlebars', ['page-styles']);
gulp.watch(config.chatStylesPath + '/**/js/source/**/*.js', ['chat-styles-js']);
gulp.watch(config.chatStylesPath + '/**/*.handlebars', ['chat-styles-handlebars']);
});
// Generate .pot files based on the sources

View File

@ -1,30 +1,31 @@
{
"devDependencies": {
"gulp": "~3.8.11",
"gulp-phpcs": "~0.6.0",
"gulp-uglify": "~1.2.0",
"gulp-concat": "~2.5.2",
"gulp-order": "~1.1.1",
"gulp-handlebars": "~4.0.0",
"gulp-define-module": "~0.1.3",
"gulp-header": "~1.2.2",
"gulp-zip": "~3.0.2",
"gulp-tar": "~1.4.0",
"gulp-gzip": "~1.1.0",
"gulp-chmod": "~1.2.0",
"gulp-xgettext": "~0.3.0",
"gulp-concat-po": "~0.1.1",
"gulp-rename": "~1.2.2",
"bower": "~1.4.1",
"handlebars": "~3.0.3",
"run-sequence": "~1.1.0",
"through2": "~0.6.5",
"pofile": "~0.2.12",
"lodash": "~3.9.3",
"strftime": "~0.9.2",
"del": "~1.2.0",
"event-stream": "~3.3.1",
"eslint": "~2.11.0",
"gulp-eslint": "~2.0.0"
}
"devDependencies": {
"bower": "~1.4.1",
"del": "~1.2.0",
"eslint": "~2.11.0",
"event-stream": "~3.3.1",
"gulp": "~3.8.11",
"gulp-chmod": "~1.2.0",
"gulp-concat": "~2.5.2",
"gulp-concat-po": "~0.1.1",
"gulp-define-module": "~0.1.3",
"gulp-eslint": "~2.0.0",
"gulp-gzip": "~1.1.0",
"gulp-handlebars": "~4.0.0",
"gulp-header": "~1.2.2",
"gulp-order": "~1.1.1",
"gulp-phpcs": "~0.6.0",
"gulp-rename": "~1.2.2",
"gulp-tar": "~1.4.0",
"gulp-uglify": "~1.2.0",
"gulp-xgettext": "~0.3.0",
"gulp-zip": "~3.0.2",
"handlebars": "~3.0.3",
"lodash": "~3.9.3",
"pofile": "~0.2.12",
"q": "^1.4.1",
"run-sequence": "~1.1.0",
"strftime": "~0.9.2",
"through2": "~0.6.5"
}
}