snap.js/Gruntfile.js

91 lines
2.6 KiB
JavaScript

module.exports = function(grunt) {
var pkg = grunt.file.readJSON("package.json"),
core = [
"./src/mina.js",
"./src/svg.js",
"./src/element.js",
"./src/animation.js",
"./src/matrix.js",
"./src/attr.js",
"./src/class.js",
"./src/attradd.js",
"./src/paper.js",
"./src/path.js",
"./src/set.js",
"./src/equal.js",
"./src/mouse.js",
"./src/filter.js",
"./src/align.js",
"./src/colors.js"
],
src = [
"./node_modules/eve/eve.js",
"./src/amd-banner.js",
"./src/amd-footer.js"
];
src.splice(2, 0, core);
// Project configuration.
grunt.initConfig({
// Metadata.
pkg: pkg,
banner: grunt.file.read("./src/copy.js")
.replace(/@VERSION/, pkg.version)
.replace(/@DATE/, grunt.template.today("yyyy-mm-dd")) + "\n",
// Task configuration.
uglify: {
options: {
banner: "<%= banner %>",
report: "min"
},
dist: {
src: "<%= concat.target.dest %>",
dest: "dist/snap.svg-min.js"
}
},
concat: {
options: {
banner: "<%= banner %>"
},
target: {
dest: "dist/snap.svg.js",
src: src
}
},
exec: {
dr: {
command: "node node_modules/dr.js/dr dr.json"
},
test: {
command: "cd test; phantomjs test.js"
},
eslint: {
command: "./node_modules/eslint/bin/eslint.js " + core.join(" ")
},
},
prettify: {
options: {
indent: 4,
indent_char: " ",
wrap_line_length: 80,
brace_style: "expand",
unformatted: ["code", "pre", "script"]
},
one: {
src: "./doc/reference.html",
dest: "./doc/reference.html"
}
}
});
grunt.loadNpmTasks("grunt-contrib-concat");
grunt.loadNpmTasks("grunt-contrib-uglify");
grunt.loadNpmTasks("grunt-exec");
grunt.loadNpmTasks("grunt-prettify");
grunt.registerTask("default", ["exec:eslint", "concat", "uglify", "exec:dr", "prettify"]);
grunt.registerTask("lint", ["exec:eslint"]);
grunt.registerTask("test", ["exec:test"]);
};