summaryrefslogtreecommitdiffstats
path: root/Gruntfile.js
diff options
context:
space:
mode:
authorTrent Richardson <trentdrichardson@gmail.com>2013-07-28 18:08:38 -0400
committerTrent Richardson <trentdrichardson@gmail.com>2013-07-28 18:08:38 -0400
commit51e8a3a4f8e01876c964b237adab2eebc50650e1 (patch)
tree1eb8319bf404747155983d0f9735f5389f95a42d /Gruntfile.js
parent8a812edfa0dfaab50191ffdaa41d244d19d7f979 (diff)
downloadjQuery-Timepicker-Addon-51e8a3a4f8e01876c964b237adab2eebc50650e1.zip
jQuery-Timepicker-Addon-51e8a3a4f8e01876c964b237adab2eebc50650e1.tar.gz
jQuery-Timepicker-Addon-51e8a3a4f8e01876c964b237adab2eebc50650e1.tar.bz2
Migrate to grunt setup
Diffstat (limited to 'Gruntfile.js')
-rw-r--r--Gruntfile.js121
1 files changed, 121 insertions, 0 deletions
diff --git a/Gruntfile.js b/Gruntfile.js
new file mode 100644
index 0000000..ffbc588
--- /dev/null
+++ b/Gruntfile.js
@@ -0,0 +1,121 @@
+'use strict';
+
+module.exports = function(grunt) {
+
+ // Project configuration.
+ grunt.initConfig({
+ // Metadata.
+ pkg: grunt.file.readJSON('jquery-ui-timepicker-addon.json'),
+ banner: '/*! <%= pkg.title || pkg.name %> - v<%= pkg.version %> - ' +
+ '<%= grunt.template.today("yyyy-mm-dd") %>\n' +
+ '<%= pkg.homepage ? "* " + pkg.homepage + "\\n" : "" %>' +
+ '* Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>;' +
+ ' Licensed <%= _.pluck(pkg.licenses, "type").join(", ") %> */\n',
+ // Task configuration.
+ clean: {
+ files: ['dist']
+ },
+ copy: {
+ dist: {
+ files: [
+ { src: 'src/index.html', dest: 'dist/index.html' },
+ { src: 'src/<%= pkg.name %>.css', dest: 'dist/<%= pkg.name %>.css' },
+ { src: 'src/i18n/jquery-ui-timepicker-*.js', dest: 'dist/i18n/', expand:true, flatten: true },
+ ]
+ }
+ },
+ concat: {
+ dist: {
+ options: {
+ banner: '<%= banner %>',
+ stripBanners: true
+ },
+ src: ['src/<%= pkg.name %>.js'],
+ dest: 'dist/<%= pkg.name %>.js'
+ }/*,
+ docs: {
+ src: [
+ 'src/docs/header.html',
+ 'src/docs/intro.html',
+ 'src/docs/options.html',
+ 'src/docs/methods.html',
+ 'src/docs/events.html',
+ 'src/docs/formatting.html',
+ 'src/docs/i18n.html',
+ 'src/docs/examples.html',
+ 'src/docs/footer.html'
+ ],
+ dest: 'dist/index.html'
+ }*/
+ },
+ uglify: {
+ options: {
+ banner: '<%= banner %>'
+ },
+ dist: {
+ src: '<%= concat.dist.dest %>',
+ dest: 'dist/<%= pkg.name %>.min.js'
+ },
+ },
+ cssmin: {
+ options: {
+ banner: '<%= banner %>'
+ },
+ dist: {
+ src: 'dist/<%= pkg.name %>.css',
+ dest: 'dist/<%= pkg.name %>.min.css'
+ },
+ },
+ jasmine: {
+ files: ['test/**/*.html']
+ },
+ jshint: {
+ gruntfile: {
+ options: {
+ jshintrc: '.jshintrc'
+ },
+ src: 'Gruntfile.js'
+ },
+ src: {
+ options: {
+ jshintrc: 'src/.jshintrc'
+ },
+ src: ['src/**/*.js']
+ },
+ test: {
+ options: {
+ jshintrc: 'test/.jshintrc'
+ },
+ src: ['test/**/*.js']
+ },
+ },
+ watch: {
+ gruntfile: {
+ files: '<%= jshint.gruntfile.src %>',
+ tasks: ['jshint:gruntfile']
+ },
+ src: {
+ files: 'src/**',//'<%= jshint.src.src %>',
+ tasks: ['jshint:src', 'clean', 'less', 'copy', 'concat', 'uglify', 'cssmin']
+ },
+ test: {
+ files: '<%= jshint.test.src %>',
+ tasks: ['jshint:test', 'jasmine']
+ },
+ },
+ });
+
+ // These plugins provide necessary tasks.
+ grunt.loadNpmTasks('grunt-contrib-clean');
+ grunt.loadNpmTasks('grunt-contrib-concat');
+ grunt.loadNpmTasks('grunt-contrib-copy');
+ grunt.loadNpmTasks('grunt-contrib-uglify');
+ grunt.loadNpmTasks('grunt-contrib-cssmin');
+ grunt.loadNpmTasks('grunt-contrib-jasmine');
+ grunt.loadNpmTasks('grunt-contrib-jshint');
+ grunt.loadNpmTasks('grunt-contrib-watch');
+
+ // Default task.
+ grunt.registerTask('default', ['jshint', 'jasmine', 'clean', 'copy', 'concat', 'uglify', 'cssmin']);
+
+};