-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathGruntfile.js
More file actions
90 lines (79 loc) · 2.75 KB
/
Gruntfile.js
File metadata and controls
90 lines (79 loc) · 2.75 KB
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
module.exports = function(grunt) {
var path = require('path');
var semver = require('semver');
var currentVersion = require('./package.json').version;
var semverIncrementLevel = 'patch';
var newVersion = semver.inc(currentVersion, semverIncrementLevel);
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
config: {
srcFolder: 'src',
tplFolder: 'tpl',
lessFolder: 'less',
bowerFolder: 'bower_components',
distFolder: 'dist',
docsFolder: 'docs',
vendorFolder: 'vendor',
tasksFolder: 'tasks',
srcDir: '<%= config.srcFolder %>',
lessDir: '<%= config.srcFolder %>/<%= config.lessFolder %>',
bowerDir: '<%= config.bowerFolder %>',
distDir: '<%= config.distFolder %>',
docsDir: '<%= config.docsFolder %>',
tplDir: '<%= config.srcFolder %>/<%= config.tplFolder %>',
vendorDir: '<%= config.docsFolder %>/<%= config.vendorFolder %>',
docsDistDir: '<%= config.docsFolder %>/<%= config.distFolder %>',
minFileName: 'form-component.min',
tasksDir: '<%= config.tasksFolder %>',
packageFileName: 'package.json',
gruntFileName: 'Gruntfile.js',
currentVersion: currentVersion,
newVersion: newVersion,
semverIncrementLevel: semverIncrementLevel
}
});
var includeAll;
try {
includeAll = require('include-all');
} catch (e) {
console.error('Could not find `include-all` module.');
console.error('Skipping grunt tasks...');
console.error('To fix this, please run:');
console.error('npm install include-all --save-dev');
console.error();
}
// Load the plugins
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-angular-templates');
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-git');
grunt.loadNpmTasks('grunt-version');
grunt.loadNpmTasks('grunt-replace');
function loadTasks(relPath) {
return includeAll({
dirname: path.resolve(__dirname, relPath),
filter: /(.+)\.js$/
}) || {};
}
function invokeConfigFn(tasks) {
for (var taskName in tasks) {
if (tasks.hasOwnProperty(taskName)) {
tasks[taskName](grunt);
}
}
}
var taskConfigurations = loadTasks('./tasks/config'),
registerSubTasksDefinitions = loadTasks('./tasks/sub-tasks'),
registerBuildDefinitions = loadTasks('./tasks/build');
if (!registerSubTasksDefinitions.default) {
registerSubTasksDefinitions.default = function(grunt) {
grunt.registerTask('default', []);
};
}
invokeConfigFn(taskConfigurations);
invokeConfigFn(registerSubTasksDefinitions);
invokeConfigFn(registerBuildDefinitions);
};