/bower_components/backbone.marionette/Gruntfile.js

https://gitlab.com/mintwax/yigetooth · JavaScript · 197 lines · 162 code · 15 blank · 20 comment · 0 complexity · 85a2819a0d4a76ad4aa7ec460e9f452b MD5 · raw file

  1. /*global module:false*/
  2. module.exports = function(grunt) {
  3. // Project configuration.
  4. grunt.initConfig({
  5. pkg: grunt.file.readJSON('package.json'),
  6. meta: {
  7. version: '<%= pkg.version %>',
  8. core_banner:
  9. '// MarionetteJS (Backbone.Marionette)\n' +
  10. '// ----------------------------------\n' +
  11. '// v<%= pkg.version %>\n' +
  12. '//\n' +
  13. '// Copyright (c)<%= grunt.template.today("yyyy") %> Derick Bailey, Muted Solutions, LLC.\n' +
  14. '// Distributed under MIT license\n' +
  15. '//\n' +
  16. '// http://marionettejs.com\n' +
  17. '\n',
  18. banner:
  19. '<%= meta.core_banner %>\n\n' +
  20. '/*!\n' +
  21. ' * Includes BabySitter\n' +
  22. ' * https://github.com/marionettejs/backbone.babysitter/\n' +
  23. ' *\n' +
  24. ' * Includes Wreqr\n' +
  25. ' * https://github.com/marionettejs/backbone.wreqr/\n' +
  26. ' */\n\n'
  27. },
  28. lint: {
  29. files: ['src/marionette.*.js']
  30. },
  31. preprocess: {
  32. core_build: {
  33. files: {
  34. 'lib/core/backbone.marionette.js' : 'src/build/marionette.core.js'
  35. }
  36. },
  37. core_amd: {
  38. files: {
  39. 'lib/core/amd/backbone.marionette.js' : 'src/build/amd.core.js'
  40. }
  41. },
  42. },
  43. concat: {
  44. options: {
  45. banner: "<%= meta.banner %>"
  46. },
  47. build: {
  48. src: [
  49. 'public/javascripts/backbone.babysitter.js',
  50. 'public/javascripts/backbone.wreqr.js',
  51. 'lib/core/backbone.marionette.js',
  52. ],
  53. dest: 'lib/backbone.marionette.js'
  54. },
  55. amd_banner: {
  56. src: 'lib/core/amd/backbone.marionette.js',
  57. dest: 'lib/core/amd/backbone.marionette.js'
  58. }
  59. },
  60. uglify : {
  61. options: {
  62. banner: "<%= meta.banner %>"
  63. },
  64. amd : {
  65. src : 'lib/core/amd/backbone.marionette.js',
  66. dest : 'lib/core/amd/backbone.marionette.min.js',
  67. },
  68. core : {
  69. src : 'lib/core/backbone.marionette.js',
  70. dest : 'lib/core/backbone.marionette.min.js',
  71. options : {
  72. sourceMap : 'lib/core/backbone.marionette.map',
  73. sourceMappingURL : 'backbone.marionette.map',
  74. sourceMapPrefix : 2,
  75. }
  76. },
  77. bundle : {
  78. src : 'lib/backbone.marionette.js',
  79. dest : 'lib/backbone.marionette.min.js',
  80. options : {
  81. sourceMap : 'lib/backbone.marionette.map',
  82. sourceMappingURL : 'backbone.marionette.map',
  83. sourceMapPrefix : 1
  84. }
  85. }
  86. },
  87. jasmine : {
  88. options : {
  89. helpers : 'spec/javascripts/helpers/*.js',
  90. specs : 'spec/javascripts/**/*.spec.js',
  91. vendor : [
  92. 'public/javascripts/jquery.js',
  93. 'public/javascripts/json2.js',
  94. 'public/javascripts/underscore.js',
  95. 'public/javascripts/backbone.js',
  96. 'public/javascripts/backbone.babysitter.js',
  97. 'public/javascripts/backbone.wreqr.js',
  98. ],
  99. },
  100. coverage : {
  101. src : '<%= jasmine.marionette.src %>',
  102. options : {
  103. template : require('grunt-template-jasmine-istanbul'),
  104. templateOptions: {
  105. coverage: 'reports/coverage.json',
  106. report: 'reports/coverage'
  107. }
  108. }
  109. },
  110. marionette : {
  111. src : [
  112. 'src/build/marionette.core.js',
  113. 'spec/javascripts/support/marionette.support.js',
  114. 'src/marionette.helpers.js',
  115. 'src/marionette.createObject.js',
  116. 'src/marionette.triggermethod.js',
  117. 'src/marionette.bindEntityEvents.js',
  118. 'src/marionette.controller.js',
  119. 'src/marionette.domRefresh.js',
  120. 'src/marionette.view.js',
  121. 'src/marionette.itemview.js',
  122. 'src/marionette.collectionview.js',
  123. 'src/marionette.compositeview.js',
  124. 'src/marionette.region.js',
  125. 'src/marionette.regionManager.js',
  126. 'src/marionette.layout.js',
  127. 'src/marionette.application.js',
  128. 'src/marionette.approuter.js',
  129. 'src/marionette.module.js',
  130. 'src/marionette.templatecache.js',
  131. 'src/marionette.renderer.js',
  132. 'src/marionette.callbacks.js'
  133. ],
  134. }
  135. },
  136. jshint: {
  137. options: {
  138. jshintrc : '.jshintrc'
  139. },
  140. marionette : [ 'src/*.js' ]
  141. },
  142. plato: {
  143. marionette : {
  144. src : 'src/*.js',
  145. dest : 'reports',
  146. options : {
  147. jshint : grunt.file.readJSON('.jshintrc')
  148. }
  149. }
  150. },
  151. watch: {
  152. marionette : {
  153. files : ['src/**/*.js', 'spec/**/*.js'],
  154. tasks : ['jshint', 'jasmine:marionette']
  155. },
  156. server : {
  157. files : ['src/**/*.js', 'spec/**/*.js'],
  158. tasks : ['jasmine:marionette:build']
  159. }
  160. },
  161. connect: {
  162. server: {
  163. options: {
  164. port: 8888
  165. }
  166. }
  167. }
  168. });
  169. grunt.loadNpmTasks('grunt-preprocess');
  170. grunt.loadNpmTasks('grunt-contrib-jasmine');
  171. grunt.loadNpmTasks('grunt-contrib-concat');
  172. grunt.loadNpmTasks('grunt-contrib-jshint');
  173. grunt.loadNpmTasks('grunt-contrib-uglify');
  174. grunt.loadNpmTasks('grunt-contrib-watch');
  175. grunt.loadNpmTasks('grunt-contrib-connect');
  176. grunt.loadNpmTasks('grunt-plato');
  177. grunt.registerTask('test', ['jshint', 'jasmine:marionette']);
  178. grunt.registerTask('dev', ['test', 'watch:marionette']);
  179. grunt.registerTask('server', ['jasmine:marionette:build', 'connect:server', 'watch:server']);
  180. // Default task.
  181. grunt.registerTask('default', ['jshint', 'jasmine:coverage', 'preprocess', 'concat', 'uglify']);
  182. };