-
Notifications
You must be signed in to change notification settings - Fork 0
/
Gruntfile.js
118 lines (99 loc) · 3.24 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
module.exports = function (grunt) {
"use strict";
// grunt plugins
require("load-grunt-tasks")(grunt);
grunt.loadTasks("build/tasks");
var coreFiles = [
];
var uiFiles = coreFiles.map(function (file) {
return "ui/" + file;
}).concat(expandFiles("ui/*.js").filter(function (file) {
return coreFiles.indexOf(file.substring(3)) === -1;
}));
function expandFiles(files) {
return grunt.util._.pluck(grunt.file.expandMapping(files), "src").map(function (values) {
return values[0];
});
}
function stripDirectory(file) {
return file.replace(/.+\/(.+?)>?$/, "$1");
}
function createBanner(files) {
// strip folders
var fileNames = files && files.map(stripDirectory);
return "/*! <%= pkg.title || pkg.name %> - v<%= pkg.version %> - " +
"<%= grunt.template.today('isoDate') %>\n" +
"<%= pkg.homepage ? '* ' + pkg.homepage + '\\n' : '' %>" +
(files ? "* Includes: " + fileNames.join(", ") + "\n" : "") +
"* Copyright <%= pkg.author.name %>;" +
" Licensed <%= _.pluck(pkg.licenses, 'type').join(', ') %> */\n";
}
grunt.initConfig({
pkg: grunt.file.readJSON( "package.json" ),
jshint: {
options: {
jshintrc: true
},
all: [
"ui/*.js",
"Gruntfile.js",
"build/**/*.js",
"tests/unit/**/*.js",
"tests/lib/**/*.js",
"demos/**/*.js"
]
},
csslint: {
base_theme: {
src: "themes/base/*.css",
options: {
csslintrc: ".csslintrc"
}
}
},
// Does not seem to work.
jscs: {
ui: {
options: {
config: true
},
files: {
src: ["demos/**/*.js", "build/**/*.js", "ui/**/*.js"]
}
},
tests: {
options: {
config: true,
maximumLineLength: null
},
files: {
src: ["tests/**/*.js"]
}
}
},
requirejs: {
js: {
options: {
baseUrl: "./",
paths: {
// jquery: "./external/jquery/jquery",
// external: "./external/"
},
preserveLicenseComments: false,
optimize: "none",
findNestedDependencies: true,
skipModuleInsertion: true,
//exclude: ["jquery"],
include: expandFiles(["ui/**/*.js", "!ui/core.js", "!ui/i18n/*"]),
out: "dist/jquery-lab-widgets.js",
wrap: {
start: createBanner(uiFiles)
}
}
}
}
});
grunt.registerTask("default", ["lint"]);
grunt.registerTask("lint", ["asciilint", "jshint", "csslint"]);
grunt.registerTask("sizer", ["requirejs:js"]);
};