1 module.exports = function(grunt) {
3 // Project configuration.
5 pkg: grunt.file.readJSON('package.json'),
7 // copy the files we care about from bower-fetched dependencies
8 // into our build directory
18 'bower_components/angular/angular.min.js',
19 'bower_components/angular/angular.min.js.map',
20 'bower_components/angular-route/angular-route.min.js',
21 'bower_components/angular-route/angular-route.min.js.map',
22 'bower_components/angular-bootstrap/ui-bootstrap.min.js',
23 'bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js',
24 'bower_components/angular-hotkeys/build/hotkeys.min.js',
36 'bower_components/angular-hotkeys/build/hotkeys.min.css',
37 'bower_components/bootstrap/dist/css/bootstrap.min.css'
44 dest : 'build/fonts/',
49 'bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot',
50 'bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.svg',
51 'bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf',
52 'bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff'
58 // combine our CSS deps
59 // note: minification also supported, but not required (yet).
63 'build/css/evergreen-staff-client-deps.<%= pkg.version %>.min.css' : [
64 'build/css/hotkeys.min.css',
65 'build/css/bootstrap.min.css'
71 // concatenation + minification
74 banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
78 // These are concatenated in order in the final build file.
79 // The order is important.
80 'build/js/angular.min.js',
81 'build/js/angular-route.min.js',
82 'build/js/ui-bootstrap.min.js',
83 'build/js/ui-bootstrap-tpls.min.js',
84 'build/js/hotkeys.min.js',
85 // NOTE: OpenSRF must be installed
86 '/openils/lib/javascript/JSON_v1.js',
87 '/openils/lib/javascript/opensrf.js',
88 '/openils/lib/javascript/opensrf_ws.js',
90 'services/strings.js',
98 'services/startup.js',
101 'services/coresvc.js',
102 'services/navbar.js',
103 'services/statusbar.js',
106 dest: 'build/js/<%= pkg.name %>.<%= pkg.version %>.min.js'
110 // bare concat operation; useful for testing concat w/o minification
111 // to more easily detect if concat order is incorrect
120 // Generate test/data/IDL2js.js for unit tests.
121 // note: the output of this script is *not* part of the final build.
123 command : 'cd test/data && perl idl2js.pl',
126 // Remove the unit test IDL2js.js file. We don't need it after testing
128 command : 'rm test/data/IDL2js.js',
132 // unit tests configuration
135 configFile: 'test/karma.conf.js',
136 //background: true // for now, visually babysit unit tests
141 // tell concat about our uglify build options (instead of repeating them)
142 config.concat.build = config.uglify.build;
144 // apply our configuration
145 grunt.initConfig(config);
148 grunt.loadNpmTasks('grunt-contrib-uglify');
149 grunt.loadNpmTasks('grunt-contrib-concat');
150 grunt.loadNpmTasks('grunt-contrib-copy');
151 grunt.loadNpmTasks('grunt-contrib-cssmin');
152 grunt.loadNpmTasks('grunt-karma');
153 grunt.loadNpmTasks('grunt-exec');
155 // note: "grunt concat" is not requried
156 grunt.registerTask('build', ['copy', 'cssmin', 'uglify']);
158 // test only, no minification
159 grunt.registerTask('test', ['copy', 'exec:idl2js', 'karma:unit', 'exec:rmidl2js']);
161 // note: "grunt concat" is not requried
162 grunt.registerTask('all', ['test', 'cssmin', 'uglify']);
166 // vim: ts=2:sw=2:softtabstop=2