Gruntfile.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. var path = require("path");
  2. module.exports = function (grunt) {
  3. grunt.loadNpmTasks("grunt-contrib-clean");
  4. grunt.loadNpmTasks("grunt-contrib-jshint");
  5. grunt.loadNpmTasks("grunt-contrib-cssmin");
  6. grunt.loadNpmTasks("grunt-contrib-concat");
  7. grunt.loadNpmTasks("grunt-mochaccino");
  8. grunt.loadNpmTasks("grunt-closure-compiler");
  9. grunt.loadNpmTasks("grunt-banner");
  10. grunt.loadNpmTasks('grunt-karma');
  11. grunt.loadNpmTasks('grunt-contrib-less');
  12. grunt.loadNpmTasks('grunt-contrib-watch');
  13. grunt.initConfig({
  14. pkg: grunt.file.readJSON('package.json'),
  15. clean: [ "build/cov" ],
  16. // see .jshintrc file for the options;
  17. // options are explained at http://www.jshint.com/docs/config/
  18. jshint: {
  19. options: {
  20. jshintrc: ".jshintrc"
  21. },
  22. core: [ "src/*.js" ],
  23. },
  24. karma: {
  25. unit: {
  26. configFile: 'karma.conf.js'
  27. }
  28. },
  29. concat: {
  30. afui:{
  31. files: {
  32. "build/appframework.ui.js": [
  33. "src/af.shim.js",
  34. "src/af.ui.js",
  35. "src/af.actionsheet.js",
  36. "src/af.grower.js",
  37. "src/af.touchEvents.js",
  38. "src/af.animateheader.js",
  39. "src/af.popup.js",
  40. "src/af.animation.js",
  41. "src/af.splashscreen.js",
  42. "src/af.drawer.js",
  43. "src/af.swipereveal.js",
  44. "src/af.desktopBrowsers.js",
  45. "src/af.toast.js",
  46. "src/af.lockscreen.js"
  47. ]
  48. }
  49. },
  50. less: {
  51. files: {
  52. "build/af.ui.less":[
  53. "src/less/main.less",
  54. "src/less/anim2.less",
  55. "src/less/animation.less",
  56. "src/less/*.less"
  57. ]
  58. }
  59. },
  60. lessBase: {
  61. files: {
  62. "./build/af.ui.base.less": [
  63. "src/less/main.less",
  64. "src/less/anim2.less",
  65. "src/less/animation.less",
  66. "src/less/appframework.less",
  67. "src/less/af.actionsheet.less",
  68. "src/less/af.popup.less",
  69. "src/less/af.splashscreen.less",
  70. "src/less/af.swipereveal.less",
  71. "src/less/af.toast.less",
  72. "src/less/badges.less",
  73. "src/less/buttons.less",
  74. "src/less/forms.less",
  75. "src/less/grid.less",
  76. "src/less/lists.less",
  77. "src/less/splitview.less",
  78. "src/less/af.lockscreen.less"
  79. ]
  80. }
  81. }
  82. },
  83. "closure-compiler": {
  84. "appframework-ui": {
  85. closurePath: "../closure/",
  86. js: ["build/appframework.ui.js"],
  87. jsOutputFile: "build/appframework.ui.min.js",
  88. options: {
  89. },
  90. maxBuffer: 500,
  91. noreport:true
  92. },
  93. },
  94. usebanner: {
  95. taskName: {
  96. options: {
  97. position: "top",
  98. banner: "/*! <%= pkg.name %> - v<%= pkg.version %> - "+
  99. "<%= grunt.template.today('yyyy-mm-dd') %> */\n",
  100. linebreak: true
  101. },
  102. files: {
  103. src: [ "build/*.js","build/*.js","build/css/*.css" ]
  104. }
  105. }
  106. },
  107. less: {
  108. development: {
  109. options: {
  110. paths: ["./src/less"],
  111. yuicompress: false
  112. },
  113. files: {
  114. "./build/af.ui.css": "./src/less/*.less"
  115. }
  116. },
  117. base: {
  118. options: {
  119. paths: ["./src/less"],
  120. yuicompress: false
  121. },
  122. files: {
  123. "./build/af.ui.base.css": [
  124. "src/less/main.less",
  125. "src/less/anim2.less",
  126. "src/less/animation.less",
  127. "src/less/appframework.less",
  128. "src/less/af.actionsheet.less",
  129. "src/less/af.popup.less",
  130. "src/less/af.splashscreen.less",
  131. "src/less/af.swipereveal.less",
  132. "src/less/af.toast.less",
  133. "src/less/badges.less",
  134. "src/less/buttons.less",
  135. "src/less/forms.less",
  136. "src/less/grid.less",
  137. "src/less/lists.less",
  138. "src/less/splitview.less",
  139. "src/less/af.lockscreen.less"
  140. ]
  141. }
  142. }
  143. },
  144. watch: {
  145. files: "./src/less/*.less",
  146. tasks: ["less"]
  147. }
  148. });
  149. grunt.registerTask("default", [
  150. "jshint",
  151. "test",
  152. "clean",
  153. "closure-compiler",
  154. "usebanner",
  155. "watch"
  156. ]);
  157. grunt.registerTask("rebuild" , ["less","concat","closure-compiler","usebanner"]);
  158. grunt.registerTask("hint" , ["jshint"]);
  159. grunt.registerTask("test" , ["karma"]);
  160. };