forked from golden-layout/golden-layout
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Gruntfile.js
126 lines (114 loc) · 2.68 KB
/
Gruntfile.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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
var gulp = require( 'gulp' );
var concat = require( 'gulp-concat' );
var uglify = require( 'gulp-uglify' );
var insert = require( 'gulp-insert' );
var watch = require( 'gulp-watch' );
/* global require */
module.exports = function( grunt ) {
grunt.registerTask( 'build', require( './build/task' ) );
var sources = [
'./build/ns.js',
'./src/js/utils/utils.js',
'./src/js/utils/EventEmitter.js',
'./src/js/utils/DragListener.js',
'./src/js/**'
];
var basicGulpStream = function( stream ) {
return stream
.pipe( concat( 'goldenlayout.js' ) )
.pipe( insert.wrap( '(function($){', '})(window.$);' ) );
};
// Project configuration.
grunt.initConfig( {
pkg: grunt.file.readJSON( 'package.json' ),
/***********************
* WATCH
***********************/
watch: {
tasks: [ 'dist', 'test' ],
files: [ './src/**', './test/**' ],
options: { livereload: 5051 },
},
/***********************
* RELEASE
***********************/
release: {
options: {
additionalFiles: [ 'bower.json' ],
beforeRelease: [ 'less', 'gulp:gl', 'gulp:glmin' ],
tagName: 'v<%= version %>',
github: {
repo: 'deepstreamIO/golden-layout',
accessTokenVar: 'GITHUB_ACCESS_TOKEN'
}
}
},
/***********************
* GULP
***********************/
gulp: {
gl: {
options: {
tasks: basicGulpStream
},
src: sources,
dest: 'dist/goldenlayout.js'
},
glmin: {
options: {
tasks: function( stream ) {
return basicGulpStream( stream )
.pipe( uglify() )
.pipe( concat( 'goldenlayout.min.js' ) );
}
},
src: sources,
dest: 'dist/goldenlayout.min.js'
}
},
/***********************
* KARMA
***********************/
karma: {
unit: {
configFile: 'karma.conf.js',
background: true,
singleRun: false
}
,
travis: {
configFile: 'karma.conf.js',
singleRun: true,
browsers: [ 'PhantomJS' ]
}
},
less: {
development: {
options: {
compress: true,
optimization: 2,
sourceMap: true
},
files: [ {
expand: true,
flatten: true,
src: "src/less/*.less",
ext: ".css",
dest: "src/css/"
} ]
}
}
}
);
grunt.loadNpmTasks( 'grunt-contrib-less' );
grunt.loadNpmTasks( 'grunt-contrib-watch' );
grunt.loadNpmTasks( 'grunt-release' );
grunt.loadNpmTasks( 'grunt-karma' );
grunt.loadNpmTasks( 'grunt-gulp' );
// Default task(s).
grunt.registerTask( 'default', [ 'watch' ] );
// travis support
grunt.registerTask( 'test', [ 'karma:travis' ] );
// distribution support
grunt.registerTask( 'dist', [ 'build', 'less', 'gulp' ] );
};