2013-06-01 15:53:32 +08:00
|
|
|
module.exports = function(grunt) {
|
2013-06-02 06:41:25 +08:00
|
|
|
var sourceFiles = [
|
|
|
|
// core / anim + tween + dd
|
|
|
|
'src/Global.js',
|
|
|
|
'src/Util.js',
|
|
|
|
'src/Canvas.js',
|
|
|
|
'src/Node.js',
|
|
|
|
'src/Animation.js',
|
|
|
|
'src/Tween.js',
|
|
|
|
'src/DragAndDrop.js',
|
|
|
|
'src/Container.js',
|
|
|
|
'src/Shape.js',
|
|
|
|
'src/Stage.js',
|
|
|
|
'src/Layer.js',
|
|
|
|
'src/Group.js',
|
|
|
|
|
|
|
|
// shapes
|
|
|
|
'src/shapes/Rect.js',
|
|
|
|
'src/shapes/Circle.js',
|
2013-06-07 13:07:53 +08:00
|
|
|
'src/shapes/Ellipse.js',
|
2013-06-02 06:41:25 +08:00
|
|
|
'src/shapes/Wedge.js',
|
|
|
|
'src/shapes/Image.js',
|
|
|
|
'src/shapes/Polygon.js',
|
|
|
|
'src/shapes/Text.js',
|
|
|
|
'src/shapes/Line.js',
|
|
|
|
'src/shapes/Spline.js',
|
|
|
|
'src/shapes/Blob.js',
|
|
|
|
'src/shapes/Sprite.js',
|
|
|
|
|
|
|
|
// plugins
|
|
|
|
'src/plugins/Path.js',
|
|
|
|
'src/plugins/TextPath.js',
|
|
|
|
'src/plugins/RegularPolygon.js',
|
|
|
|
'src/plugins/Star.js',
|
|
|
|
'src/plugins/Label.js',
|
|
|
|
|
|
|
|
// filters
|
|
|
|
'src/filters/Grayscale.js',
|
|
|
|
'src/filters/Brighten.js',
|
|
|
|
'src/filters/Invert.js',
|
|
|
|
'src/filters/Blur.js',
|
|
|
|
'src/filters/Mask.js'
|
|
|
|
];
|
2013-06-01 15:53:32 +08:00
|
|
|
|
2013-06-02 06:58:14 +08:00
|
|
|
var unitTestFiles = [
|
|
|
|
'tests/js/unit/animationTests.js',
|
|
|
|
'tests/js/unit/tweenTests.js',
|
|
|
|
'tests/js/unit/globalTests.js',
|
|
|
|
'tests/js/unit/utilTests.js',
|
|
|
|
'tests/js/unit/nodeTests.js',
|
|
|
|
'tests/js/unit/stageTests.js',
|
|
|
|
'tests/js/unit/containerTests.js',
|
|
|
|
'tests/js/unit/layerTests.js',
|
|
|
|
'tests/js/unit/shapeTests.js',
|
|
|
|
'tests/js/unit/ddTests.js',
|
|
|
|
'tests/js/unit/shapes/rectTests.js',
|
|
|
|
'tests/js/unit/shapes/circleTests.js',
|
2013-06-07 13:07:53 +08:00
|
|
|
'tests/js/unit/shapes/ellipseTests.js',
|
2013-06-02 06:58:14 +08:00
|
|
|
'tests/js/unit/shapes/wedgeTests.js',
|
|
|
|
'tests/js/unit/shapes/imageTests.js',
|
|
|
|
'tests/js/unit/shapes/polygonTests.js',
|
|
|
|
'tests/js/unit/shapes/lineTests.js',
|
|
|
|
'tests/js/unit/shapes/splineTests.js',
|
|
|
|
'tests/js/unit/shapes/blobTests.js',
|
|
|
|
'tests/js/unit/shapes/textTests.js',
|
|
|
|
'tests/js/unit/shapes/spriteTests.js',
|
|
|
|
|
|
|
|
'tests/js/unit/plugins/pathTests.js',
|
|
|
|
'tests/js/unit/plugins/regularPolygonTests.js',
|
|
|
|
'tests/js/unit/plugins/starTests.js',
|
|
|
|
'tests/js/unit/plugins/textPathTests.js',
|
|
|
|
'tests/js/unit/plugins/labelTests.js'
|
|
|
|
];
|
|
|
|
|
2013-06-01 15:53:32 +08:00
|
|
|
// Project configuration.
|
2013-06-02 06:41:25 +08:00
|
|
|
var config = {
|
2013-06-01 15:53:32 +08:00
|
|
|
pkg: grunt.file.readJSON('package.json'),
|
|
|
|
concat: {
|
|
|
|
options: {
|
|
|
|
separator: ';'
|
|
|
|
},
|
2013-06-02 06:58:14 +08:00
|
|
|
source: {
|
2013-06-02 06:41:25 +08:00
|
|
|
src: sourceFiles,
|
2013-06-01 15:53:32 +08:00
|
|
|
dest: 'dist/kinetic-v<%= pkg.version %>.js'
|
2013-06-02 06:58:14 +08:00
|
|
|
},
|
|
|
|
test: {
|
|
|
|
src: unitTestFiles,
|
|
|
|
dest: 'tests/js/unitTests.js'
|
2013-06-01 15:53:32 +08:00
|
|
|
}
|
|
|
|
},
|
|
|
|
replace: {
|
2013-06-02 06:41:25 +08:00
|
|
|
dev: {
|
2013-06-01 15:53:32 +08:00
|
|
|
options: {
|
|
|
|
variables: {
|
2013-06-02 01:27:44 +08:00
|
|
|
version: '<%= pkg.version %>',
|
|
|
|
date: '<%= grunt.template.today("yyyy-mm-dd") %>',
|
|
|
|
nodeParams: '<%= grunt.file.read("doc-includes/NodeParams.txt") %>',
|
|
|
|
containerParams: '<%= grunt.file.read("doc-includes/ContainerParams.txt") %>',
|
|
|
|
shapeParams: '<%= grunt.file.read("doc-includes/ShapeParams.txt") %>'
|
2013-06-01 15:53:32 +08:00
|
|
|
},
|
|
|
|
prefix: '@@'
|
|
|
|
},
|
2013-06-02 06:41:25 +08:00
|
|
|
|
|
|
|
files: [{
|
|
|
|
src: ['dist/kinetic-v<%= pkg.version %>.js'],
|
|
|
|
dest: 'dist/kinetic-v<%= pkg.version %>.js'
|
|
|
|
}]
|
|
|
|
},
|
|
|
|
prod: {
|
|
|
|
options: {
|
|
|
|
variables: {
|
|
|
|
version: '<%= pkg.version %>',
|
|
|
|
},
|
|
|
|
prefix: '@@'
|
|
|
|
},
|
|
|
|
files: [{
|
|
|
|
src: ['dist/kinetic-Global-v<%= pkg.version %>.min.js'],
|
|
|
|
dest: 'dist/kinetic-Global-v<%= pkg.version %>.min.js'
|
|
|
|
}]
|
2013-06-01 15:53:32 +08:00
|
|
|
}
|
|
|
|
},
|
|
|
|
uglify: {
|
|
|
|
options: {
|
2013-06-02 06:41:25 +08:00
|
|
|
banner: '/*! <%= pkg.name %> v<%= pkg.version %> <%= grunt.template.today("yyyy-mm-dd") %> http://www.kineticjs.com by Eric Rowell @ericdrowell - MIT License https://github.com/ericdrowell/KineticJS/wiki/License*/\n'
|
2013-06-01 15:53:32 +08:00
|
|
|
},
|
|
|
|
build: {
|
2013-06-02 06:41:25 +08:00
|
|
|
files: {
|
|
|
|
'dist/kinetic-v<%= pkg.version %>.min.js': 'dist/kinetic-v<%= pkg.version %>.js'
|
|
|
|
}
|
2013-06-01 15:53:32 +08:00
|
|
|
}
|
2013-06-02 06:41:25 +08:00
|
|
|
},
|
|
|
|
clean: {
|
|
|
|
build: ['dist/*']
|
2013-06-02 07:13:33 +08:00
|
|
|
},
|
|
|
|
jshint: {
|
2013-06-02 13:03:02 +08:00
|
|
|
options: {
|
|
|
|
laxbreak: true
|
|
|
|
},
|
2013-06-02 07:13:33 +08:00
|
|
|
all: ['src/**/*.js']
|
2013-06-01 15:53:32 +08:00
|
|
|
}
|
2013-06-02 06:41:25 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
for (var n=0; n<sourceFiles.length; n++) {
|
|
|
|
var inputFile = sourceFiles[n];
|
|
|
|
var className = (inputFile.match(/[-_\w]+[.][\w]+$/i)[0]).replace('.js', '');
|
|
|
|
var outputFile = 'dist/kinetic-' + className + '-v<%= pkg.version %>.min.js';
|
|
|
|
|
|
|
|
config.uglify.build.files[outputFile] = [inputFile];
|
|
|
|
}
|
|
|
|
|
|
|
|
grunt.initConfig(config);
|
2013-06-01 15:53:32 +08:00
|
|
|
|
|
|
|
// Load plugins
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-concat');
|
|
|
|
grunt.loadNpmTasks('grunt-replace');
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-uglify');
|
2013-06-02 06:41:25 +08:00
|
|
|
grunt.loadNpmTasks('grunt-contrib-clean');
|
2013-06-02 07:13:33 +08:00
|
|
|
grunt.loadNpmTasks('grunt-contrib-jshint');
|
2013-06-01 15:53:32 +08:00
|
|
|
|
|
|
|
// Tasks
|
2013-06-02 06:58:14 +08:00
|
|
|
grunt.registerTask('dev', ['clean', 'concat:source', 'replace:dev']);
|
|
|
|
grunt.registerTask('full', ['clean', 'concat:source', 'replace:dev', 'uglify', 'replace:prod']);
|
|
|
|
grunt.registerTask('test', ['concat:test']);
|
2013-06-02 13:17:18 +08:00
|
|
|
grunt.registerTask('hint', ['clean', 'concat:source', 'replace:dev', 'jshint']);
|
2013-06-01 15:53:32 +08:00
|
|
|
};
|