/Gruntfile.js

https://github.com/openplans/shareabouts · JavaScript · 92 lines · 83 code · 8 blank · 1 comment · 0 complexity · 2889aa70848c3e1462e69fa127d26869 MD5 · raw file

  1. module.exports = function(grunt) {
  2. grunt.initConfig({
  3. dirs: {
  4. // Configurable paths
  5. src: 'src/sa_web/static',
  6. dest: 'src/sa_web/static/dist'
  7. },
  8. concat: {
  9. distjs: {
  10. options: {separator: ';'},
  11. files: {
  12. '<%= dirs.dest %>/preload.js': ['<%= dirs.src %>/js/utils.js',
  13. '<%= dirs.src %>/js/template-helpers.js'],
  14. '<%= dirs.dest %>/app.js': ['<%= dirs.src %>/js/handlebars-helpers.js',
  15. '<%= dirs.src %>/js/models.js',
  16. '<%= dirs.src %>/js/views/pages-nav-view.js',
  17. '<%= dirs.src %>/js/views/auth-nav-view.js',
  18. '<%= dirs.src %>/js/views/activity-view.js',
  19. '<%= dirs.src %>/js/views/app-view.js',
  20. '<%= dirs.src %>/js/views/layer-view.js',
  21. '<%= dirs.src %>/js/views/map-view.js',
  22. '<%= dirs.src %>/js/views/support-view.js',
  23. '<%= dirs.src %>/js/views/survey-view.js',
  24. '<%= dirs.src %>/js/views/place-detail-view.js',
  25. '<%= dirs.src %>/js/views/place-form-view.js',
  26. '<%= dirs.src %>/js/views/place-list-view.js',
  27. '<%= dirs.src %>/js/views/geocode-address-view.js',
  28. '<%= dirs.src %>/js/routes.js']
  29. }
  30. },
  31. distcss: {
  32. options: {separator: '\n'},
  33. files: {
  34. '<%= dirs.dest %>/app.css': ['<%= dirs.src %>/css/normalize.css',
  35. '<%= dirs.src %>/css/default.css',
  36. '<%= dirs.src %>/css/custom.css']
  37. }
  38. }
  39. },
  40. uglify: {
  41. distjs: {
  42. files: {
  43. '<%= dirs.dest %>/libs.min.js': ['<%= dirs.src %>/libs/underscore.js',
  44. '<%= dirs.src %>/libs/backbone.js',
  45. '<%= dirs.src %>/libs/backbone.marionette.js',
  46. '<%= dirs.src %>/libs/handlebars-v3.0.3.js',
  47. '<%= dirs.src %>/libs/moment-with-locales.min.js',
  48. '<%= dirs.src %>/libs/json2.js',
  49. '<%= dirs.src %>/libs/leaflet.argo.js',
  50. '<%= dirs.src %>/libs/binaryajax.js',
  51. '<%= dirs.src %>/libs/exif.js',
  52. '<%= dirs.src %>/libs/load-image.js',
  53. '<%= dirs.src %>/libs/canvas-to-blob.js',
  54. '<%= dirs.src %>/libs/spin.min.js',
  55. '<%= dirs.src %>/libs/gatekeeper.js',
  56. '<%= dirs.src %>/libs/swag.min.js',
  57. '<%= dirs.src %>/libs/jquery.scrollTo.js',
  58. '<%= dirs.src %>/libs/handlebars-helpers.js']
  59. }
  60. }
  61. },
  62. copy: {
  63. distcssimages: {
  64. expand: true,
  65. cwd: '<%= dirs.src %>/css/',
  66. src: '{,*/}*.{gif,jpeg,jpg,png,svg,webp}',
  67. dest: '<%= dirs.dest %>/',
  68. },
  69. },
  70. watch: {
  71. files: ['<%= jshint.files %>'],
  72. tasks: ['jshint']
  73. }
  74. });
  75. grunt.loadNpmTasks('grunt-contrib-watch');
  76. grunt.loadNpmTasks('grunt-contrib-concat');
  77. grunt.loadNpmTasks('grunt-contrib-uglify');
  78. grunt.loadNpmTasks('grunt-contrib-copy');
  79. grunt.registerTask('default', [
  80. 'concat',
  81. 'uglify',
  82. 'copy'
  83. ]);
  84. };