forked from lorenzofox3/Smart-Table
-
Notifications
You must be signed in to change notification settings - Fork 1
/
gulpFile.js
60 lines (50 loc) · 1.65 KB
/
gulpFile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
var gulp = require('gulp');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var karma = require('karma').server;
var jshint = require('gulp-jshint');
var insert = require('gulp-insert');
var sourcemaps = require('gulp-sourcemaps');
var stylish = require('jshint-stylish');
var packageJson = require('./package.json');
var pluginList = ['stSearch', 'stSelectRow', 'stSort', 'stPagination', 'stPipe'];
var disFolder = './dist/';
var src = (['smart-table.module', 'stConfig', 'stTable']).concat(pluginList).map(function (val) {
return 'src/' + val + '.js';
});
src.push('src/bottom.txt');
src.unshift('src/top.txt');
//just as indication
gulp.task('lint', function () {
gulp.src(src)
.pipe(jshint())
.pipe(jshint.reporter(stylish));
});
gulp.task('karma-CI', function (done) {
var conf = require('./test/karma.common.js');
conf.singleRun = true;
conf.browsers = ['PhantomJS'];
conf.basePath = './';
karma.start(conf, done);
});
gulp.task('uglify', function () {
gulp.src(src)
.pipe(concat('smart-table.min.js'))
.pipe(sourcemaps.init())
.pipe(uglify())
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest(disFolder));
});
gulp.task('concat', function () {
gulp.src(src, { base: '.' })
.pipe(concat('smart-table.js'))
.pipe(gulp.dest(disFolder));
});
gulp.task('test', ['karma-CI']);
gulp.task('build',['test', 'uglify', 'concat'], function () {
var version = packageJson.version;
var string = '/** \n* @version ' + version + '\n* @license MIT\n*/\n';
gulp.src(disFolder + '*.js')
.pipe(insert.prepend(string))
.pipe(gulp.dest(disFolder));
});