Gruntfile.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. module.exports = function (grunt) {
  2. // Full list of files that must be included by RequireJS
  3. includes = [
  4. 'jquery.select2'
  5. ];
  6. amdIncludes = [
  7. 'almond'
  8. ];
  9. fullIncludes = [
  10. 'jquery'
  11. ].concat(includes);
  12. grunt.initConfig({
  13. uglify: {
  14. 'dist': {
  15. src: 'dist/js/select2.js',
  16. dest: 'dist/js/select2.min.js'
  17. },
  18. 'dist.full': {
  19. src: 'dist/js/select2.full.js',
  20. dest: 'dist/js/select2.full.min.js'
  21. }
  22. },
  23. qunit: {
  24. all: [
  25. 'tests/**/*.html'
  26. ]
  27. },
  28. jshint: {
  29. options: {
  30. jshintrc: true
  31. },
  32. code: {
  33. src: ["src/js/**/*.js"]
  34. },
  35. tests: {
  36. src: ["tests/**/*.js"]
  37. }
  38. },
  39. sass: {
  40. dist: {
  41. options: {
  42. outputStyle: "compressed"
  43. },
  44. files: {
  45. "dist/css/select2.min.css": [
  46. "src/scss/core.scss",
  47. "src/scss/theme/default/layout.css"
  48. ]
  49. }
  50. },
  51. dev: {
  52. options: {
  53. outputStyle: "nested"
  54. },
  55. files: {
  56. "dist/css/select2.css": [
  57. "src/scss/core.scss",
  58. "src/scss/theme/default/layout.css"
  59. ]
  60. }
  61. }
  62. },
  63. requirejs: {
  64. "dist": {
  65. options: {
  66. baseUrl: "src/js",
  67. optimize: "none",
  68. name: "select2/core",
  69. out: "dist/js/select2.js",
  70. include: amdIncludes.concat(includes),
  71. paths: {
  72. almond: "../../vendor/almond-0.2.9",
  73. jquery: "jquery.shim"
  74. }
  75. }
  76. },
  77. "dist.full": {
  78. options: {
  79. baseUrl: "src/js",
  80. optimize: "none",
  81. name: "select2/core",
  82. out: "dist/js/select2.full.js",
  83. include: amdIncludes.concat(fullIncludes),
  84. paths: {
  85. almond: "../../vendor/almond-0.2.9",
  86. jquery: "../../vendor/jquery-2.1.0"
  87. }
  88. }
  89. },
  90. "amd": {
  91. options: {
  92. baseUrl: "src/js",
  93. optimize: "none",
  94. name: "select2/core",
  95. out: "dist/js/select2.amd.js",
  96. paths: {
  97. jquery: "empty:"
  98. }
  99. }
  100. },
  101. "amd.full": {
  102. options: {
  103. baseUrl: "src/js",
  104. optimize: "none",
  105. name: "select2/core",
  106. out: "dist/js/select2.amd.full.js",
  107. include: fullIncludes,
  108. paths: {
  109. jquery: "empty:"
  110. }
  111. }
  112. }
  113. },
  114. concat: {
  115. "dist": {
  116. src: [
  117. "src/js/start.js",
  118. "dist/js/select2.js",
  119. "src/js/end.js"
  120. ],
  121. dest: "dist/js/select2.js"
  122. },
  123. "dist.full": {
  124. src: [
  125. "src/js/start.js",
  126. "dist/js/select2.full.js",
  127. "src/js/end.js"
  128. ],
  129. dest: "dist/js/select2.full.js"
  130. }
  131. },
  132. watch: {
  133. js: {
  134. files: [
  135. "src/js/select2/**/*.js",
  136. "tests/**/*.js",
  137. ],
  138. tasks: [
  139. "compile",
  140. "test",
  141. 'minify'
  142. ]
  143. },
  144. css: {
  145. files: [
  146. "src/scss/**/*.scss"
  147. ],
  148. tasks: [
  149. "compile",
  150. 'minify'
  151. ]
  152. }
  153. }
  154. });
  155. grunt.loadNpmTasks("grunt-contrib-concat")
  156. grunt.loadNpmTasks("grunt-contrib-jshint")
  157. grunt.loadNpmTasks("grunt-contrib-qunit")
  158. grunt.loadNpmTasks("grunt-contrib-requirejs")
  159. grunt.loadNpmTasks("grunt-contrib-uglify")
  160. grunt.loadNpmTasks("grunt-contrib-watch")
  161. grunt.loadNpmTasks("grunt-sass")
  162. grunt.registerTask("default", ["compile", "test", "minify"])
  163. grunt.registerTask("compile", ["requirejs", "sass:dev", "concat"])
  164. grunt.registerTask("minify", ["uglify", "sass:dist"])
  165. grunt.registerTask("test", ["qunit", "jshint"])
  166. }