diff --git a/.travis.yml b/.travis.yml index baa0031..9e5cd30 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,5 @@ language: node_js node_js: - - 0.8 + - "0.10" +before_script: + - npm install grunt-cli -g diff --git a/Gruntfile.js b/Gruntfile.js new file mode 100644 index 0000000..a443273 --- /dev/null +++ b/Gruntfile.js @@ -0,0 +1,55 @@ +/*jshint node: true */ +module.exports = function(grunt) { + + // Project configuration. + grunt.initConfig({ + // Metadata. + pkg: grunt.file.readJSON("package.json"), + banner: "/*! <%= pkg.name %> - v<%= pkg.version %> - " + + "* Copyright (c) <%= grunt.template.today('yyyy') %> IOLA and <%= pkg.author.name %>;" + + " Licensed <%= pkg.license %> */\n", + // Task configuration. + uglify: { + options: { + banner: "<%= banner %>" + }, + dist: { + expand: true, + flatten: true, + src: ["jquery.*.js", "!jquery.js"], + dest: "dist/", + rename: function(base, path) { + return base + path.replace(/\.js/, ".min.js"); + } + } + }, + jshint: { + options: grunt.file.readJSON(".jshintrc"), + gruntfile: { + src: "Gruntfile.js" + }, + flot: { + src: ["jquery.flot*.js"] + } + }, + watch: { + gruntfile: { + files: "Gruntfile.js", + tasks: ["jshint:gruntfile"] + }, + flot: { + files: "<%= jshint.flot.src %>", + tasks: ["jshint:flot"] + } + } + }); + + // These plugins provide necessary tasks. + grunt.loadNpmTasks("grunt-contrib-uglify"); + grunt.loadNpmTasks("grunt-contrib-jshint"); + grunt.loadNpmTasks("grunt-contrib-watch"); + + // Default task. + grunt.registerTask("default", ["jshint", "uglify"]); + +}; diff --git a/Makefile b/Makefile deleted file mode 100644 index 1efb317..0000000 --- a/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -# Flot Makefile - -.PHONY: all - -# The default behavior is to minify all our JavaScript files - -all: $(patsubst %.js,%.min.js,$(filter-out %.min.js,$(wildcard *.js))) - -%.min.js: %.js - yui-compressor $< -o $@ - -# Flot's Travis test suite runs JSHint with the options in .jshintrc - -test: - ./node_modules/.bin/jshint jquery.flot*.js diff --git a/package.json b/package.json index 00bde26..179c0ef 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,51 @@ { - "name": "Flot", - "version": "0.9.0-alpha", - "main": "jquery.flot.js", - "scripts": { - "test": "make test" - }, - "devDependencies": { - "jshint": "0.9.1" - } + "name": "Flot", + "version": "0.9.0-alpha", + "main": "jquery.flot.js", + "scripts": { + "test": "grunt jshint" + }, + "description": "Flot is a pure JavaScript plotting library for jQuery, with a focus on simple usage, attractive looks and interactive features.", + "directories": { + "example": "examples" + }, + "homepage": "http://www.flotcharts.org", + "repository": { + "type": "git", + "url": "https://github.com/flot/flot.git" + }, + "keywords": [ + "chart", + "plot", + "graph", + "visualization", + "canvas", + "graphics" + ], + "author": { + "name": "Ole Laursen", + "url": "https://github.com/OleLaursen" + }, + "licenses": [ + { + "type": "MIT", + "url": "http://github.com/flot/flot/blob/master/LICENSE.txt" + } + ], + "bugs": { + "url": "https://github.com/flot/flot/issues" + }, + "devDependencies": { + "grunt": "~0.4.1", + "grunt-contrib-jshint": "~0.6.4", + "grunt-contrib-uglify": "~0.2.4", + "grunt-contrib-watch": "~0.5.3" + }, + "maintainers": [ + { + "name": "David Schnur", + "email": "dnschnur@gmail.com", + "url": "http://github.com/dnschnur" + } + ] }