text: module.exports = function(grunt) {
  
    grunt.initConfig({
      clean: {
        dist: {
          src: [
            'public/css',
            'public/js'
          ]
        }
      },
      watch: {
        scripts: {
          files: ['src/app/*/*.*', 'src/app/*/*/*.*', 'src/app/*.*'],
          tasks: ['build'],
          options: {
            spawn: false
          }
        }
      },
      copy: {
        main: {
          files: []
        }
      },
      concat: {
        vendorjs: {
          src: [
            'src/assets/libs/jquery/*.js',
            'src/assets/libs/angularjs/angular.min.js',
            'src/assets/libs/angularjs/angular-animate.min.js',
            'src/assets/libs/angularjs/angular-route.min.js',
            'src/assets/libs/bootstrap/bootstrap.min.js',
            'src/assets/libs/jsontree/jsontree.min.js',
            'src/assets/libs/typeahead/typeahead.min.js',
            'src/assets/libs/ace/ace.min.js'
          ],
          dest: 'public/js/lib.js'
        },
        vendorcss: {
          src: [
            'src/assets/css/bootstrap.min.css',
            'src/assets/css/font-awesome.min.css'
          ],
          dest: 'public/css/lib.css'
        },
        appjs: {
          src: [
            'src/app/app.routes.js',
            'src/app/components/*/*.js',
            'src/app/shared/*.js',
            'src/app/shared/*/*.js'
          ],
          dest: 'public/js/app.js'
        },
        appcss: {
          src: [
            'src/app/css/app.css'
          ],
          dest: 'public/css/app.css'
        },
      },
      jshint: {
        cerebro: {
          src: [
            'src/app/components/*/*.js',
            'src/app/shared/*.js',
            'src/app/shared/*/*.js'
          ]
        }
      },
      qunit: {
        all: ['./tests/all.html']
      },
      karma: {
        unit: {configFile: 'tests/karma.config.js', keepalive: true}
      },
      jscs: {
        src: [
          'src/app/app.routes.js',
          'src/app/components/*/*.js',
          'src/app/shared/*.js',
          'src/app/shared/*/*.js'
        ],
        options: {
          preset: 'google',
          maximumLineLength: 240,
          requireCamelCaseOrUpperCaseIdentifiers: "ignoreProperties",
          validateQuoteMarks : false
        }
      }
    });
    grunt.loadNpmTasks('grunt-contrib-clean');
    grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.loadNpmTasks('grunt-contrib-connect');
    grunt.loadNpmTasks('grunt-contrib-copy');
    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.loadNpmTasks('grunt-contrib-jshint');
    grunt.loadNpmTasks('grunt-contrib-qunit');
    grunt.loadNpmTasks('grunt-karma');
    grunt.loadNpmTasks("grunt-jscs");
    grunt.registerTask('dev', ['watch'])
    grunt.registerTask('build',
      ['clean', 'jshint', 'jscs', 'concat', 'copy', 'qunit']);
    grunt.registerTask('test', ['karma'])
  };
  