forked from igvteam/igv.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Gruntfile.js
128 lines (114 loc) · 4.01 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
127
module.exports = function (grunt) {
require("load-grunt-tasks")(grunt);
// 1. All configuration goes here
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
concat: {
igv: {
src: [
'wrapper/header.js',
'tmp/embedCss.js',
'vendor/jquery-3.3.1.slim.js',
'vendor/underscore.js',
'vendor/zlib_and_gzip.js',
'vendor/inflate.js',
'vendor/jquery.mousewheel.js',
'vendor/rbtree.js',
'vendor/tdigest.js',
'js/**/*.js',
'wrapper/footer.js'
],
dest: 'dist/igv.js'
},
igv_es6: {
src: [
'wrapper/header-esm.js',
'tmp/embedCss.js',
'vendor/jquery-3.3.1.slim.js',
'vendor/underscore.js',
'vendor/zlib_and_gzip.js',
'vendor/inflate.js',
'vendor/jquery.mousewheel.js',
'vendor/rbtree.js',
'vendor/tdigest.js',
'js/**/*.js',
'wrapper/footer-esm.js'
],
dest: 'dist/igv.esm.js'
},
zlib: {
src: [
'vendor/zlib/zlib.js',
'vendor/zlib/zip.js',
'vendor/zlib/huffman.js',
'vendor/zlib/rawinflate.js',
'vendor/zlib/rawinflate_stream.js',
'vendor/zlib/inflate.js',
'vendor/zlib/inflate_stream.js',
'vendor/zlib/gunzip.js',
'vendor/zlib/gunzip_member.js',
'vendor/zlib/gzip.js',
'vendor/zlib/heap.js',
'vendor/zlib/rawdeflate.js',
'vendor/zlib/unzip.js',
'vendor/zlib/util.js',
'vendor/zlib/adler32.js',
'vendor/zlib/bitstream.js',
'vendor/zlib/crc32.js',
'vendor/zlib/deflate.js'
],
dest: 'vendor/zlib_and_gzip.js'
},
css: {
src: [
'css/igv.css',
'vendor/fa-svg-with-js.css'
],
dest: 'tmp/igv-all.css'
}
},
uglify: {
options: {
mangle: false,
sourceMap: true
},
igv: {
src: 'dist/igv.js',
dest: 'dist/igv.min.js'
},
igv_esm: {
src: 'dist/igv.esm.js',
dest: 'dist/igv.esm.min.js'
}
},
babel: {
options: {
sourceMap: true,
presets: ['es2015']
},
dist: {
files: {
'dist/igv.esm.js': 'dist/igv.esm.js',
'dist/igv.js': 'dist/igv.js',
}
}
}
});
// 3. Where we tell Grunt we plan to use this plug-in.
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify-es');
// 4. Where we tell Grunt what to do when we type "grunt" into the terminal.
grunt.registerTask('default', [ 'concat:css', 'embed-css', 'concat:igv', 'concat:igv_es6', 'babel', 'uglify:igv', 'uglify:igv_esm']);
grunt.registerTask('doc', ['md2html']);
grunt.task.registerTask('embed-css', 'One line-ify igv.css.', function () {
var ping,
pong,
foo;
ping = grunt.file.read('tmp/igv-all.css');
pong = ping.replace(/\n/g, '\\n');
ping = pong.replace(/"/g, '\\"');
foo = grunt.file.read('wrapper/embedCss.js');
foo = foo.replace('_CSS_', ping)
grunt.file.write('tmp/embedCss.js', foo);
});
};