123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- module.exports = function (grunt) {
- 'use strict';
- require('load-grunt-tasks')(grunt);
- var _ = require('lodash');
- var karmaConfig = function(configFile, customOptions) {
- var options = { configFile: configFile, keepalive: true };
- var travisOptions = process.env.TRAVIS && { browsers: ['Firefox'], reporters: 'dots' };
- return _.extend(options, customOptions, travisOptions);
- };
- var mountFolder = function (connect, dir) {
- return connect.static(require('path').resolve(dir));
- };
- grunt.initConfig({
- pkg: grunt.file.readJSON('bower.json'),
- meta: {
- 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(", ") %> */'
- },
- watch: {
- scripts: {
- files: ['Gruntfile.js', 'src/**/*.js', 'test/**/*.js'],
- tasks: ['jshint', 'karma:unit']
- }
- },
- jshint: {
- all: ['Gruntfile.js', 'src/**/*.js', 'test/**/*.js'],
- options: {
- eqeqeq: true,
- globals: {
- angular: true
- }
- }
- },
- concat: {
- js: {
- src: ['src/**/*main.js',
- 'src/**/*.js'],
- dest: 'dist/angular-multi-select-tree-<%= pkg.version %>.js'
- },
- css: {
- src: ['src/**/*.css', 'src/**/*.less'],
- dest: 'dist/angular-multi-select-tree-<%= pkg.version %>.css'
- }
- },
- ngtemplates: {
- 'multi-select-tree': {
- src: 'src/**/*.html',
- dest: 'dist/angular-multi-select-tree-<%= pkg.version %>.tpl.js'
- }
- },
- uglify: {
- src: {
- files: {
- 'dist/angular-multi-select-tree-<%= pkg.version %>.min.js': '<%= concat.js.dest %>'
- }
- }
- },
- // connect
- connect: {
- options: {
- port: 3000,
- livereload: 93729,
- hostname: '0.0.0.0'
- },
- demo: {
- options: {
- middleware: function (connect) {
- return [
- mountFolder(connect, '')
- ];
- }
- }
- }
- },
- // open
- open: {
- server: {
- path: 'http://localhost:<%= connect.options.port %>/demo/'
- }
- },
- karma: {
- unit: {
- options: karmaConfig('karma.conf.js', {
- singleRun: true
- })
- },
- server: {
- options: karmaConfig('karma.conf.js', {
- singleRun: false
- })
- }
- },
- changelog: {
- options: {
- dest: 'CHANGELOG.md'
- }
- },
- ngmin: {
- src: {
- src: '<%= concat.js.dest %>',
- dest: '<%= concat.js.dest %>'
- }
- },
- cssmin: {
- css: {
- src: '<%= concat.css.dest %>',
- dest: 'dist/angular-multi-select-tree-<%= pkg.version %>.min.css'
- }
- },
- clean: ['dist/*']
- });
- grunt.registerTask('default', ['jshint', 'karma:unit']);
- grunt.registerTask('test', ['karma:unit']);
- grunt.registerTask('test-server', ['karma:server']);
- grunt.registerTask('server', ['open', 'connect:demo', 'watch']);
- grunt.registerTask('build', ['clean', 'jshint', 'concat', 'ngtemplates', 'ngmin', 'cssmin', 'uglify']);
- };
|