123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- module.exports = function(grunt) {
- 'use strict';
- // Project configuration.
- grunt.initConfig({
- pkg: grunt.file.readJSON('package.json'),
- meta: {
- banner: [
- '/**',
- ' * <%= pkg.description %>',
- ' * @version v<%= pkg.version %> - <%= grunt.template.today("yyyy-mm-dd") %>' +
- ' * @link <%= pkg.homepage %>',
- ' * @author <%= pkg.author %>',
- ' * @license MIT License, http://www.opensource.org/licenses/MIT',
- ' */'
- ].join('\n')
- },
- dirs: {
- dest: 'dist'
- },
- concat: {
- options: {
- banner: '<%= meta.banner %>'
- },
- dist: {
- src: ['src/*.js'],
- dest: '<%= dirs.dest %>/<%= pkg.name %>.js'
- }
- },
- zip: {
- '<%= dirs.dest %>/restangular.zip': [
- '<%= dirs.dest %>/<%= pkg.name %>.js',
- '<%= dirs.dest %>/<%= pkg.name %>.min.js'
- ]
- },
- bowerInstall: {
- install: {
- }
- },
- uglify: {
- options: {
- banner: '<%= meta.banner %>'
- },
- dist: {
- src: ['<%= concat.dist.dest %>'],
- dest: '<%= dirs.dest %>/<%= pkg.name %>.min.js'
- }
- },
- jshint: {
- files: ['Gruntfile.js', 'src/*.js'],
- options: {
- jshintrc: true
- }
- },
- karma: {
- options: {
- configFile: 'karma.conf.js'
- },
- build: {
- singleRun: true,
- autoWatch: false
- },
- debug: {
- singleRun: false,
- autoWatch: true,
- browsers: ['Chrome']
- },
- travis: {
- singleRun: true,
- autoWatch: false,
- browsers: ['Firefox']
- },
- travisUnderscore: {
- singleRun: true,
- autoWatch: false,
- browsers: ['Firefox'],
- configFile: 'karma.underscore.conf.js',
- },
- buildUnderscore: {
- configFile: 'karma.underscore.conf.js',
- singleRun: true,
- autoWatch: false
- },
- dev: {
- autoWatch: true
- }
- },
- changelog: {
- options: {
- dest: 'CHANGELOG.md'
- }
- }
- });
- // Load the plugin that provides the "jshint" task.
- grunt.loadNpmTasks('grunt-contrib-jshint');
- // Load the plugin that provides the "concat" task.
- grunt.loadNpmTasks('grunt-contrib-concat');
- // Load the plugin that provides the "uglify" task.
- grunt.loadNpmTasks('grunt-contrib-uglify');
- grunt.loadNpmTasks('grunt-bower-task');
- grunt.renameTask('bower', 'bowerInstall');
- grunt.loadNpmTasks('grunt-karma');
- grunt.loadNpmTasks('grunt-conventional-changelog');
- grunt.loadNpmTasks('grunt-zip');
- // Default task.
- grunt.registerTask('default', ['build']);
- // Build task.
- grunt.registerTask('build', ['bowerInstall', 'karma:build', 'karma:buildUnderscore', 'concat', 'uglify', 'zip']);
- grunt.registerTask('test', ['karma:build', 'karma:buildUnderscore']);
- grunt.registerTask('test-debug', ['karma:debug']);
- grunt.registerTask('travis', ['karma:travis', 'karma:travisUnderscore']);
- // Provides the "bump" task.
- grunt.registerTask('bump', 'Increment version number', function() {
- var versionType = grunt.option('type');
- function bumpVersion(version, versionType) {
- var type = {patch: 2, minor: 1, major: 0},
- parts = version.split('.'),
- idx = type[versionType || 'patch'];
- parts[idx] = parseInt(parts[idx], 10) + 1;
- while(++idx < parts.length) { parts[idx] = 0; }
- return parts.join('.');
- }
- var version;
- function updateFile(file) {
- var json = grunt.file.readJSON(file);
- version = json.version = bumpVersion(json.version, versionType || 'patch');
- grunt.file.write(file, JSON.stringify(json, null, ' '));
- }
- updateFile('package.json');
- updateFile('bower.json');
- grunt.log.ok('Version bumped to ' + version);
- });
- };
|