kero
Version:
176 lines (153 loc) • 4.76 kB
JavaScript
;
var gulp = require('gulp');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
var minifycss = require('gulp-minify-css');
var util = require('gulp-util');
var makeumd = require('./makeumd.js');
/**
* 公共错误处理函数
* 使用示例:
* .pipe(uglify().on('error', errHandle))
.pipe(rename('u.min.js'))
* @param {[type]} err [description]
* @return {[type]} [description]
*/
var errHandle = function ( err ) {
// 报错文件名
var fileName = err.fileName;
// 报错类型
var name = err.name;
// 报错信息
var message = err.message;
// 出错代码位置
// var loc = err.loc;
// var logInfo = '报错文件:' + fileName + '报错类型:' + name + '出错代码位置:' + loc.line + ',' + loc.column;
// util.log( logInfo );
this.end();
}
var globs = {
js: {
dtJs:[
'js/dtJs/core.js',
'js/app.js',
'js/dataTable.js',
'js/dtJs/mixins/enableMixin.js',
'js/dtJs/mixins/requiredMixin.js',
'js/dtJs/mixins/validateMixin.js',
'js/dtJs/mixins/valueMixin.js',
'js/dtJs/baseAdapter.js',
'js/dtJs/integer.js',
'js/dtJs/float.js',
'js/dtJs/currency.js',
'js/dtJs/ckeditor.js',
'js/dtJs/percent.js',
'js/dtJs/string.js',
'js/dtJs/textarea.js',
'js/dtJs/textfield.js',
'js/dtJs/checkbox.js',
'js/dtJs/switch.js',
'js/dtJs/combobox.js',
'js/dtJs/radio.js',
'js/dtJs/native-radio.js',
'js/dtJs/native-checkbox.js',
'js/dtJs/pagination.js',
'js/dtJs/datetime.js',
'js/dtJs/time.js',
'js/dtJs/yearmonth.js',
'js/dtJs/year.js',
'js/dtJs/month.js',
'js/dtJs/progress.js',
'js/dtJs/url.js',
'js/dtJs/password.js',
],
coreJs:[
'js/core/core.js',
'js/core/event.js',
'js/utilities/jsExtensions.js',
'js/core/ajax.js',
'js/core/base.js',
'js/core/compMgr.js',
'js/utilities/i18n.js',
'js/utilities/rsautils.js',
'js/utilities/masker.js',
'js/utilities/formater.js',
'js/utilities/dateUtils.js',
'js/utilities/dataRender.js',
'js/utilities/hotKeys.js'
],
treeJs:'js/dtJs/tree.js',
gridJs:'js/dtJs/grid.js'
}
};
gulp.task('js-init', function() {
return gulp.src(globs.js.dtJs)
.pipe(concat('model.js'))
.pipe(gulp.dest('dist/js'))
.pipe(uglify())
.on('error', errHandle)
.pipe(rename('model.min.js'))
.pipe(gulp.dest('dist/js'));
});
gulp.task('js', ['js-init'], function(){
makeumd.init([
'dist/js/model.js',
'dist/js/model.min.js',
]);
});
gulp.task('ujs-init', ['js-init'], function(){
return gulp.src(globs.js.coreJs.concat(globs.js.dtJs))
.pipe(concat('u-model.js'))
.pipe(gulp.dest('dist/js'))
.pipe(uglify())
.on('error', errHandle)
.pipe(rename('u-model.min.js'))
.pipe(gulp.dest('dist/js'));
});
gulp.task('ujs', ['ujs-init'], function(){
makeumd.init([
'dist/js/u-model.js',
'dist/js/u-model.min.js',
]);
});
gulp.task('tree-init', function() {
return gulp.src(globs.js.treeJs)
.pipe(rename('tree.kero.js'))
.pipe(gulp.dest('dist/js'))
.pipe(uglify())
.on('error', errHandle)
.pipe(rename('tree.kero.min.js'))
.pipe(gulp.dest('dist/js'));
});
gulp.task('tree', ['tree-init'], function(){
makeumd.init([
'dist/js/tree.kero.js',
'dist/js/tree.kero.min.js',
]);
});
gulp.task('grid-init', function() {
return gulp.src(globs.js.gridJs)
.pipe(rename('grid.kero.js'))
.pipe(gulp.dest('dist/js'))
.pipe(uglify())
.on('error', errHandle)
.pipe(rename('grid.kero.min.js'))
.pipe(gulp.dest('dist/js'));
});
gulp.task('grid', ['grid-init'], function(){
makeumd.init([
'dist/js/grid.kero.js',
'dist/js/grid.kero.min.js',
]);
});
gulp.task('distWatch', function(){
gulp.watch(globs.js.coreJs.concat(globs.js.dtJs), ['ujs']);
gulp.watch(globs.js.treeJs, ['tree']);
gulp.watch(globs.js.gridJs, ['grid']);
})
gulp.task('dev', ['js', 'ujs', 'tree', 'grid'],function(){
gulp.run('distWatch');
});
gulp.task('dist', ['js', 'ujs', 'tree', 'grid'], function(){
});