UNPKG

angularytics

Version:

The solution to tracking page views and events in a SPA with AngularJS

161 lines (142 loc) 4.01 kB
'use strict'; module.exports = function(grunt) { // Project configuration. grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), meta: { banner: '/**\n' + ' * <%= pkg.description %>\n' + ' * @version v<%= pkg.version %> - <%= grunt.template.today("yyyy-mm-dd") %>\n' + ' * @link <%= pkg.homepage %>\n' + ' * @author <%= pkg.author %>\n' + ' * @license MIT License, http://www.opensource.org/licenses/MIT\n' + ' */\n' }, dirs: { dest: 'dist', src: 'src' }, concat: { options: { banner: '<%= meta.banner %>' }, dist: { src: ['src/angularytics.js', 'src/consoleHandler.js', 'src/googleHandler.js', 'src/trackEventFilter.js'], dest: '<%= dirs.dest %>/<%= pkg.name %>.js' } }, zip: { '<%= dirs.dest %>/angularytics.zip': ['<%= dirs.dest %>/<%= pkg.name %>.js', '<%= dirs.dest %>/<%= pkg.name %>.min.js'] }, bower: { dev: { dest: '<%= dirs.dest %>/dependencies' } }, bowerInstall: { install: { } }, uglify: { options: { banner: '<%= meta.banner %>' }, dist: { src: ['<%= concat.dist.dest %>'], dest: '<%= dirs.dest %>/<%= pkg.name %>.min.js' } }, ngmin: { files: { expand: true, cwd: '', src: '<%= concat.dist.dest %>', dest: '' } }, jshint: { files: ['Gruntfile.js', 'src/*.js'], options: { curly: false, browser: true, eqeqeq: true, immed: true, latedef: true, newcap: true, noarg: true, sub: true, undef: true, boss: true, eqnull: true, expr: true, node: true, globals: { exports: true, angular: false, $: false } } }, karma: { options: { configFile: 'karma.conf.js' }, build: { singleRun: true, autoWatch: false }, 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-bower'); grunt.loadNpmTasks('grunt-karma'); grunt.loadNpmTasks('grunt-conventional-changelog'); grunt.loadNpmTasks('grunt-zip'); grunt.loadNpmTasks('grunt-ngmin'); // Default task. grunt.registerTask('default', ['build']); // Build task. grunt.registerTask('build', ['bowerInstall', 'bower', 'concat', 'ngmin', 'uglify', 'zip']); grunt.registerTask('test', ['karma:build', 'karma:buildUnderscore']); // 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); }); };