2013-06-01 00:53:32 -07:00
|
|
|
module.exports = function(grunt) {
|
2013-06-01 15:41:25 -07:00
|
|
|
var sourceFiles = [
|
2013-12-31 13:04:05 -08:00
|
|
|
// core
|
2014-02-27 08:49:18 +08:00
|
|
|
'src/Global.js',
|
|
|
|
'src/Util.js',
|
2013-06-01 15:41:25 -07:00
|
|
|
'src/Canvas.js',
|
2013-08-31 21:49:18 -07:00
|
|
|
'src/Context.js',
|
2013-08-10 21:11:34 -07:00
|
|
|
'src/Factory.js',
|
2014-02-27 08:49:18 +08:00
|
|
|
'src/Node.js',
|
2013-12-31 13:04:05 -08:00
|
|
|
|
2014-01-04 23:34:01 -08:00
|
|
|
// filters
|
2014-02-27 08:49:18 +08:00
|
|
|
'src/filters/Grayscale.js',
|
|
|
|
'src/filters/Brighten.js',
|
|
|
|
'src/filters/Invert.js',
|
|
|
|
'src/filters/Blur.js',
|
2013-12-31 13:04:05 -08:00
|
|
|
'src/filters/Mask.js',
|
2014-01-03 20:25:35 -08:00
|
|
|
'src/filters/RGB.js',
|
|
|
|
'src/filters/HSV.js',
|
2014-01-31 16:49:11 -05:00
|
|
|
'src/filters/HSL.js',
|
2014-01-04 05:21:44 -08:00
|
|
|
'src/filters/Emboss.js',
|
2014-01-02 21:12:41 -08:00
|
|
|
'src/filters/Enhance.js',
|
2014-01-03 23:23:53 -08:00
|
|
|
'src/filters/Posterize.js',
|
2013-12-31 13:04:05 -08:00
|
|
|
'src/filters/Noise.js',
|
|
|
|
'src/filters/Pixelate.js',
|
|
|
|
'src/filters/Threshold.js',
|
|
|
|
'src/filters/Sepia.js',
|
2014-01-04 05:34:36 -08:00
|
|
|
'src/filters/Solarize.js',
|
2014-01-07 00:43:31 -08:00
|
|
|
'src/filters/Kaleidoscope.js',
|
2014-01-04 23:34:01 -08:00
|
|
|
|
2013-12-31 13:04:05 -08:00
|
|
|
// core
|
2014-02-27 08:49:18 +08:00
|
|
|
'src/Animation.js',
|
|
|
|
'src/Tween.js',
|
|
|
|
'src/DragAndDrop.js',
|
|
|
|
'src/Container.js',
|
|
|
|
'src/Shape.js',
|
|
|
|
'src/Stage.js',
|
|
|
|
'src/Layer.js',
|
2013-06-01 15:41:25 -07:00
|
|
|
'src/Group.js',
|
|
|
|
|
|
|
|
// shapes
|
2014-02-27 08:49:18 +08:00
|
|
|
'src/shapes/Rect.js',
|
|
|
|
'src/shapes/Circle.js',
|
2013-06-06 22:07:53 -07:00
|
|
|
'src/shapes/Ellipse.js',
|
2013-12-13 02:07:16 -05:00
|
|
|
'src/shapes/Ring.js',
|
2014-02-27 08:49:18 +08:00
|
|
|
'src/shapes/Wedge.js',
|
2013-12-12 21:20:29 -08:00
|
|
|
'src/shapes/Arc.js',
|
2014-02-27 08:49:18 +08:00
|
|
|
'src/shapes/Image.js',
|
|
|
|
'src/shapes/Text.js',
|
|
|
|
'src/shapes/Line.js',
|
2013-06-01 15:41:25 -07:00
|
|
|
'src/shapes/Sprite.js',
|
|
|
|
|
|
|
|
// plugins
|
2014-02-27 08:49:18 +08:00
|
|
|
'src/plugins/Path.js',
|
|
|
|
'src/plugins/TextPath.js',
|
|
|
|
'src/plugins/RegularPolygon.js',
|
|
|
|
'src/plugins/Star.js',
|
2013-12-31 13:04:05 -08:00
|
|
|
'src/plugins/Label.js'
|
2013-06-01 15:41:25 -07:00
|
|
|
];
|
2013-06-01 00:53:32 -07:00
|
|
|
|
|
|
|
// Project configuration.
|
2014-02-27 19:15:18 -08:00
|
|
|
var hintConf = grunt.file.readJSON('.jshintrc');
|
2013-06-01 15:41:25 -07:00
|
|
|
var config = {
|
2013-06-01 00:53:32 -07:00
|
|
|
pkg: grunt.file.readJSON('package.json'),
|
|
|
|
concat: {
|
|
|
|
options: {
|
|
|
|
separator: ';'
|
|
|
|
},
|
2013-07-27 21:09:33 -07:00
|
|
|
dev: {
|
|
|
|
src: sourceFiles,
|
|
|
|
dest: 'dist/kinetic-dev.js'
|
|
|
|
},
|
|
|
|
beta: {
|
|
|
|
src: sourceFiles,
|
|
|
|
dest: 'dist/kinetic-v<%= pkg.version %>-beta.js'
|
|
|
|
},
|
|
|
|
prod: {
|
2013-06-01 15:41:25 -07:00
|
|
|
src: sourceFiles,
|
2013-06-01 00:53:32 -07:00
|
|
|
dest: 'dist/kinetic-v<%= pkg.version %>.js'
|
|
|
|
}
|
|
|
|
},
|
|
|
|
replace: {
|
2013-06-01 15:41:25 -07:00
|
|
|
dev: {
|
2013-07-27 21:09:33 -07:00
|
|
|
options: {
|
|
|
|
variables: {
|
|
|
|
version: 'dev',
|
|
|
|
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") %>'
|
|
|
|
},
|
|
|
|
prefix: '@@'
|
|
|
|
},
|
|
|
|
|
|
|
|
files: [{
|
2014-02-27 08:49:18 +08:00
|
|
|
src: ['dist/kinetic-dev.js'],
|
2013-07-27 21:09:33 -07:00
|
|
|
dest: 'dist/kinetic-dev.js'
|
|
|
|
}]
|
|
|
|
},
|
2013-07-27 23:26:06 -07:00
|
|
|
beta: {
|
|
|
|
options: {
|
|
|
|
variables: {
|
|
|
|
version: '<%= pkg.version %>-beta',
|
|
|
|
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") %>'
|
|
|
|
},
|
|
|
|
prefix: '@@'
|
|
|
|
},
|
|
|
|
|
|
|
|
files: [{
|
2014-02-27 08:49:18 +08:00
|
|
|
src: ['dist/kinetic-v<%= pkg.version %>-beta.js'],
|
2013-07-27 23:26:06 -07:00
|
|
|
dest: 'dist/kinetic-v<%= pkg.version %>-beta.js'
|
|
|
|
}]
|
|
|
|
},
|
2013-07-27 21:09:33 -07:00
|
|
|
prod1: {
|
2013-06-01 00:53:32 -07:00
|
|
|
options: {
|
|
|
|
variables: {
|
2013-06-01 10:27:44 -07: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 00:53:32 -07:00
|
|
|
},
|
|
|
|
prefix: '@@'
|
|
|
|
},
|
2013-06-01 15:41:25 -07:00
|
|
|
|
|
|
|
files: [{
|
2014-02-27 08:49:18 +08:00
|
|
|
src: ['dist/kinetic-v<%= pkg.version %>.js'],
|
2013-06-01 15:41:25 -07:00
|
|
|
dest: 'dist/kinetic-v<%= pkg.version %>.js'
|
|
|
|
}]
|
|
|
|
},
|
2013-07-27 21:09:33 -07:00
|
|
|
prod2: {
|
2013-06-01 15:41:25 -07:00
|
|
|
options: {
|
|
|
|
variables: {
|
|
|
|
version: '<%= pkg.version %>',
|
|
|
|
},
|
|
|
|
prefix: '@@'
|
|
|
|
},
|
|
|
|
files: [{
|
2014-02-27 08:49:18 +08:00
|
|
|
src: ['dist/kinetic-Global-v<%= pkg.version %>.min.js'],
|
2013-06-01 15:41:25 -07:00
|
|
|
dest: 'dist/kinetic-Global-v<%= pkg.version %>.min.js'
|
|
|
|
}]
|
2013-07-27 21:09:33 -07:00
|
|
|
},
|
|
|
|
prod3: {
|
|
|
|
options: {
|
|
|
|
variables: {
|
|
|
|
version: '<%= pkg.version %>',
|
|
|
|
},
|
|
|
|
prefix: '@@'
|
|
|
|
},
|
|
|
|
files: [{
|
2014-02-27 08:49:18 +08:00
|
|
|
src: ['dist/kinetic-v<%= pkg.version %>.min.js'],
|
2013-07-27 21:09:33 -07:00
|
|
|
dest: 'dist/kinetic-v<%= pkg.version %>.min.js'
|
|
|
|
}]
|
2014-01-19 21:51:06 -08:00
|
|
|
},
|
|
|
|
prod4: {
|
|
|
|
options: {
|
|
|
|
variables: {
|
|
|
|
version: '<%= pkg.version %>',
|
|
|
|
},
|
|
|
|
prefix: '@@'
|
|
|
|
},
|
|
|
|
files: [{
|
2014-02-27 08:49:18 +08:00
|
|
|
src: ['bower-template.json'],
|
2014-01-19 21:51:06 -08:00
|
|
|
dest: 'bower.json'
|
|
|
|
}]
|
2013-06-01 00:53:32 -07:00
|
|
|
}
|
|
|
|
},
|
|
|
|
uglify: {
|
|
|
|
options: {
|
2013-06-01 15:41:25 -07: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 00:53:32 -07:00
|
|
|
},
|
|
|
|
build: {
|
2013-06-01 15:41:25 -07:00
|
|
|
files: {
|
|
|
|
'dist/kinetic-v<%= pkg.version %>.min.js': 'dist/kinetic-v<%= pkg.version %>.js'
|
|
|
|
}
|
2013-06-01 00:53:32 -07:00
|
|
|
}
|
2013-06-01 15:41:25 -07:00
|
|
|
},
|
|
|
|
clean: {
|
|
|
|
build: ['dist/*']
|
2013-06-01 16:13:33 -07:00
|
|
|
},
|
|
|
|
jshint: {
|
2014-02-27 19:15:18 -08:00
|
|
|
options: hintConf,
|
2013-06-01 16:13:33 -07:00
|
|
|
all: ['src/**/*.js']
|
2014-01-19 21:51:06 -08:00
|
|
|
},
|
|
|
|
copy: {
|
2014-01-21 20:50:30 -08:00
|
|
|
prod1: {
|
2014-01-19 21:51:06 -08:00
|
|
|
nonull: true,
|
|
|
|
src: 'dist/kinetic-v<%= pkg.version %>.min.js',
|
2014-01-21 20:50:30 -08:00
|
|
|
dest: 'kinetic.min.js',
|
2014-01-19 21:51:06 -08:00
|
|
|
},
|
2014-01-21 20:50:30 -08:00
|
|
|
prod2: {
|
|
|
|
nonull: true,
|
|
|
|
src: 'dist/kinetic-v<%= pkg.version %>.js',
|
|
|
|
dest: 'kinetic.js',
|
|
|
|
}
|
2014-02-27 17:56:41 +08:00
|
|
|
},
|
|
|
|
shell: {
|
|
|
|
jsdoc: {
|
|
|
|
options: {
|
|
|
|
stdout: true,
|
|
|
|
stderr : true,
|
|
|
|
failOnError : true
|
|
|
|
},
|
|
|
|
command: './node_modules/.bin/jsdoc ./dist/kinetic-v<%= pkg.version %>.js -d ./documentation'
|
|
|
|
}
|
|
|
|
},
|
|
|
|
mocha_phantomjs: {
|
|
|
|
all: ['test/runner.html']
|
2014-02-27 18:45:28 +08:00
|
|
|
},
|
|
|
|
watch: {
|
|
|
|
dev: {
|
|
|
|
files: ['src/**/*.js'],
|
|
|
|
tasks: ['dev'],
|
|
|
|
options: {
|
|
|
|
spawn: false,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
2013-06-01 15:41:25 -07: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 00:53:32 -07:00
|
|
|
|
|
|
|
|
|
|
|
// Tasks
|
2014-02-27 17:56:41 +08:00
|
|
|
grunt.registerTask('dev', 'Create dev version', ['clean', 'concat:dev', 'replace:dev']);
|
|
|
|
grunt.registerTask('beta', 'Create beta version', ['clean', 'concat:beta', 'replace:beta']);
|
|
|
|
grunt.registerTask('full', 'Build full version and create min files', [
|
2014-02-27 08:49:18 +08:00
|
|
|
'clean',
|
|
|
|
'concat:prod',
|
|
|
|
'uglify',
|
|
|
|
'replace:prod1',
|
|
|
|
'replace:prod2',
|
|
|
|
'replace:prod3',
|
2014-01-21 20:50:30 -08:00
|
|
|
'replace:prod4',
|
2014-02-27 08:49:18 +08:00
|
|
|
'copy:prod1',
|
2014-01-21 20:50:30 -08:00
|
|
|
'copy:prod2'
|
|
|
|
]);
|
2014-02-27 17:56:41 +08:00
|
|
|
|
2014-02-28 08:21:29 +08:00
|
|
|
grunt.registerTask('docs', 'Generate documentation to documentation folder', [
|
2014-02-27 17:56:41 +08:00
|
|
|
'full',
|
|
|
|
'shell:jsdoc',
|
|
|
|
]);
|
|
|
|
|
2014-02-27 19:15:18 -08:00
|
|
|
grunt.registerTask('hint', 'Check hint errors', ['jshint']);
|
2014-02-27 18:45:28 +08:00
|
|
|
grunt.registerTask('test', 'Run tests', ['dev', 'mocha_phantomjs']);
|
|
|
|
|
|
|
|
grunt.registerTask('server', 'run local server and create dev version', function() {
|
|
|
|
|
|
|
|
grunt.task.run('dev');
|
|
|
|
grunt.log.writeln('Tests server starts on http://localhost:8080/test/runner.html');
|
|
|
|
var connect = require('connect');
|
|
|
|
connect.createServer(
|
|
|
|
connect.static(__dirname)
|
|
|
|
).listen(8080);
|
|
|
|
grunt.task.run('watch:dev');
|
|
|
|
});
|
2014-02-27 17:56:41 +08:00
|
|
|
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-concat');
|
|
|
|
grunt.loadNpmTasks('grunt-replace');
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-uglify');
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-clean');
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-jshint');
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-copy');
|
|
|
|
grunt.loadNpmTasks('grunt-shell');
|
|
|
|
grunt.loadNpmTasks('grunt-mocha-phantomjs');
|
2014-02-27 18:45:28 +08:00
|
|
|
grunt.loadNpmTasks('grunt-contrib-watch');
|
2013-07-11 21:02:51 -04:00
|
|
|
};
|