UNPKG

4.76 kBJavaScriptView Raw
1'use strict';
2
3var gulp = require('gulp');
4var concat = require('gulp-concat');
5var uglify = require('gulp-uglify');
6var rename = require('gulp-rename');
7var minifycss = require('gulp-minify-css');
8var util = require('gulp-util');
9var makeumd = require('./makeumd.js');
10
11/**
12 * 公共错误处理函数
13 * 使用示例:
14 * .pipe(uglify().on('error', errHandle))
15 .pipe(rename('u.min.js'))
16 * @param {[type]} err [description]
17 * @return {[type]} [description]
18 */
19var errHandle = function ( err ) {
20 // 报错文件名
21 var fileName = err.fileName;
22 // 报错类型
23 var name = err.name;
24 // 报错信息
25 var message = err.message;
26 // 出错代码位置
27 // var loc = err.loc;
28
29 // var logInfo = '报错文件:' + fileName + '报错类型:' + name + '出错代码位置:' + loc.line + ',' + loc.column;
30
31 // util.log( logInfo );
32
33 this.end();
34}
35
36
37var globs = {
38 js: {
39 dtJs:[
40 'js/dtJs/core.js',
41 'js/app.js',
42 'js/dataTable.js',
43 'js/dtJs/mixins/enableMixin.js',
44 'js/dtJs/mixins/requiredMixin.js',
45 'js/dtJs/mixins/validateMixin.js',
46 'js/dtJs/mixins/valueMixin.js',
47 'js/dtJs/baseAdapter.js',
48 'js/dtJs/integer.js',
49 'js/dtJs/float.js',
50 'js/dtJs/currency.js',
51 'js/dtJs/ckeditor.js',
52 'js/dtJs/percent.js',
53 'js/dtJs/string.js',
54 'js/dtJs/textarea.js',
55 'js/dtJs/textfield.js',
56 'js/dtJs/checkbox.js',
57 'js/dtJs/switch.js',
58 'js/dtJs/combobox.js',
59 'js/dtJs/radio.js',
60 'js/dtJs/native-radio.js',
61 'js/dtJs/native-checkbox.js',
62 'js/dtJs/pagination.js',
63 'js/dtJs/datetime.js',
64 'js/dtJs/time.js',
65 'js/dtJs/yearmonth.js',
66 'js/dtJs/year.js',
67 'js/dtJs/month.js',
68 'js/dtJs/progress.js',
69 'js/dtJs/url.js',
70 'js/dtJs/password.js',
71 ],
72 coreJs:[
73 'js/core/core.js',
74 'js/core/event.js',
75 'js/utilities/jsExtensions.js',
76 'js/core/ajax.js',
77 'js/core/base.js',
78 'js/core/compMgr.js',
79 'js/utilities/i18n.js',
80 'js/utilities/rsautils.js',
81 'js/utilities/masker.js',
82 'js/utilities/formater.js',
83 'js/utilities/dateUtils.js',
84 'js/utilities/dataRender.js',
85 'js/utilities/hotKeys.js'
86 ],
87 treeJs:'js/dtJs/tree.js',
88 gridJs:'js/dtJs/grid.js'
89 }
90};
91
92gulp.task('js-init', function() {
93 return gulp.src(globs.js.dtJs)
94 .pipe(concat('model.js'))
95 .pipe(gulp.dest('dist/js'))
96 .pipe(uglify())
97 .on('error', errHandle)
98 .pipe(rename('model.min.js'))
99 .pipe(gulp.dest('dist/js'));
100});
101
102gulp.task('js', ['js-init'], function(){
103 makeumd.init([
104 'dist/js/model.js',
105 'dist/js/model.min.js',
106 ]);
107});
108
109gulp.task('ujs-init', ['js-init'], function(){
110 return gulp.src(globs.js.coreJs.concat(globs.js.dtJs))
111 .pipe(concat('u-model.js'))
112 .pipe(gulp.dest('dist/js'))
113 .pipe(uglify())
114 .on('error', errHandle)
115 .pipe(rename('u-model.min.js'))
116 .pipe(gulp.dest('dist/js'));
117});
118
119gulp.task('ujs', ['ujs-init'], function(){
120 makeumd.init([
121 'dist/js/u-model.js',
122 'dist/js/u-model.min.js',
123 ]);
124});
125
126
127
128gulp.task('tree-init', function() {
129 return gulp.src(globs.js.treeJs)
130 .pipe(rename('tree.kero.js'))
131 .pipe(gulp.dest('dist/js'))
132 .pipe(uglify())
133 .on('error', errHandle)
134 .pipe(rename('tree.kero.min.js'))
135 .pipe(gulp.dest('dist/js'));
136});
137
138gulp.task('tree', ['tree-init'], function(){
139 makeumd.init([
140 'dist/js/tree.kero.js',
141 'dist/js/tree.kero.min.js',
142 ]);
143});
144
145
146gulp.task('grid-init', function() {
147 return gulp.src(globs.js.gridJs)
148 .pipe(rename('grid.kero.js'))
149 .pipe(gulp.dest('dist/js'))
150 .pipe(uglify())
151 .on('error', errHandle)
152 .pipe(rename('grid.kero.min.js'))
153 .pipe(gulp.dest('dist/js'));
154});
155
156gulp.task('grid', ['grid-init'], function(){
157 makeumd.init([
158 'dist/js/grid.kero.js',
159 'dist/js/grid.kero.min.js',
160 ]);
161});
162
163gulp.task('distWatch', function(){
164 gulp.watch(globs.js.coreJs.concat(globs.js.dtJs), ['ujs']);
165 gulp.watch(globs.js.treeJs, ['tree']);
166 gulp.watch(globs.js.gridJs, ['grid']);
167})
168
169
170gulp.task('dev', ['js', 'ujs', 'tree', 'grid'],function(){
171 gulp.run('distWatch');
172});
173
174gulp.task('dist', ['js', 'ujs', 'tree', 'grid'], function(){
175});