Gruntfile.js 3.4 KB

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