-
Notifications
You must be signed in to change notification settings - Fork 46
/
Copy pathGruntfile.js
78 lines (73 loc) · 2.64 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
module.exports = function (grunt) {
var fs = require('fs');
var defaultTasks = [];
var pluginName = 'imagespace';
var pluginDir = 'plugins/imagespace';
var staticDir = 'clients/web/static/built/plugins/' + pluginName;
var sourceDir = 'web_external';
if (!fs.existsSync(staticDir)) {
fs.mkdirSync(staticDir);
}
var jadeDir = pluginDir + '/' + sourceDir + '/templates';
if (fs.existsSync(jadeDir)) {
var files = {};
files[staticDir + '/templates.js'] = [jadeDir + '/**/*.jade'];
grunt.config.set('jade.' + pluginName, {
files: files
});
grunt.config.set('jade.' + pluginName + '.options', {
namespace: pluginName + '.templates'
});
grunt.config.set('watch.jade_' + pluginName, {
files: [jadeDir + '/**/*.jade'],
tasks: ['jade:' + pluginName, 'uglify:' + pluginName]
});
defaultTasks.push('jade:' + pluginName);
}
var cssDir = pluginDir + '/' + sourceDir + '/stylesheets';
if (fs.existsSync(cssDir)) {
var files = {};
files[staticDir + '/' + pluginName + '.min.css'] = [cssDir + '/**/*.styl'];
grunt.config.set('stylus.' + pluginName, {
files: files
});
grunt.config.set('watch.stylus_' + pluginName, {
files: [cssDir + '/**/*.styl'],
tasks: ['stylus:' + pluginName]
});
defaultTasks.push('stylus:' + pluginName);
}
var jsDir = pluginDir + '/' + sourceDir + '/js',
libDir = pluginDir + '/' + sourceDir + '/lib';
if (fs.existsSync(jsDir)) {
var files = {};
files[staticDir + '/' + pluginName + '-libs.min.js'] = [
libDir + '/js/d3.v3.min.js',
libDir + '/js/d3.geo.projection.min.js',
libDir + '/js/topojson.js',
libDir + '/js/vega.js'
];
files[staticDir + '/' + pluginName + '.min.js'] = [
jsDir + '/init.js',
staticDir + '/templates.js',
jsDir + '/view.js',
jsDir + '/app.js',
jsDir + '/utilities.js',
jsDir + '/models/**/*.js',
jsDir + '/collections/**/*.js',
jsDir + '/views/**/*.js'
];
files[staticDir + '/main.min.js'] = [
jsDir + '/main.js'
];
grunt.config.set('uglify.' + pluginName, {
files: files
});
grunt.config.set('watch.js_' + pluginName, {
files: [jsDir + '/**/*.js'],
tasks: ['uglify:' + pluginName]
});
defaultTasks.push('uglify:' + pluginName);
}
grunt.registerTask('imagespace', defaultTasks);
};