Gruntfile.js 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. module.exports = function (grunt) {
  2. grunt.initConfig({
  3. pkg: grunt.file.readJSON('package.json'),
  4. cssmin: {
  5. wui: {
  6. expand: true,
  7. cwd: 'src/wui',
  8. src: ['*.css', '!*.min.css'],
  9. dest: 'src/wui',
  10. ext: '.min.css'
  11. },
  12. 'wui-6': {
  13. expand: true,
  14. cwd: 'src/wui-6',
  15. src: ['*.css', '!*.min.css'],
  16. dest: 'src/wui-6',
  17. ext: '.min.css'
  18. },
  19. upload: {
  20. expand: true,
  21. cwd: 'src/upload',
  22. src: ['*.css', '!*.min.css'],
  23. dest: 'src/upload',
  24. ext: '.min.css'
  25. }
  26. },
  27. uglify: {
  28. wui: {
  29. files: {
  30. 'src/wui/main.min.js': ['src/wui/main.js'],
  31. 'src/wui/role.min.js': ['src/wui/role.js']
  32. }
  33. },
  34. 'wui-6': {
  35. files: {
  36. 'src/wui-6/main.min.js': ['src/wui-6/main.js'],
  37. 'src/wui-6/role.min.js': ['src/wui-6/role.js']
  38. }
  39. },
  40. upload: {
  41. files: {
  42. 'src/upload/upload.min.js': ['src/upload/upload.js']
  43. }
  44. }
  45. },
  46. compress: {
  47. wui: {
  48. options: {
  49. mode: 'gzip'
  50. },
  51. files: [
  52. {expand: true, cwd: 'src/wui/',src: ['*.min.js'], dest: 'dist/wui', ext: '.js'},
  53. {expand: true, cwd: 'src/wui/',src: ['*.min.css'], dest: 'dist/wui', ext: '.css'},
  54. {expand: true, cwd: 'src/wui/',src: ['*.min.html'], dest: 'dist/wui', ext: '.html'}
  55. ]
  56. },
  57. 'wui-6': {
  58. options: {
  59. mode: 'gzip'
  60. },
  61. files: [
  62. {expand: true, cwd: 'src/wui-6/',src: ['*.min.js'], dest: 'dist/wui-6', ext: '.js'},
  63. {expand: true, cwd: 'src/wui-6/',src: ['*.min.css'], dest: 'dist/wui-6', ext: '.css'},
  64. {expand: true, cwd: 'src/wui-6/',src: ['*.min.html'], dest: 'dist/wui-6', ext: '.html'}
  65. ]
  66. },
  67. upload: {
  68. options: {
  69. mode: 'gzip'
  70. },
  71. files: [
  72. {expand: true, cwd: 'src/upload/',src: ['*.min.js'], dest: 'dist/upload', ext: '.js'},
  73. {expand: true, cwd: 'src/upload/',src: ['*.min.css'], dest: 'dist/upload', ext: '.css'},
  74. {expand: true, cwd: 'src/upload/',src: ['*.html'], dest: 'dist/upload', ext: '.html'}
  75. ]
  76. }
  77. },
  78. htmlmin: {
  79. wui: {
  80. options: {
  81. removeComments: true,
  82. collapseWhitespace: true,
  83. minifyJS : true
  84. },
  85. files: {
  86. 'src/wui/login.min.html': 'src/wui/login.html',
  87. 'src/wui/rslogin.min.html': 'src/wui/rslogin.html',
  88. 'src/wui/index.min.html': 'src/wui/index.html',
  89. 'src/wui/settings.min.html': 'src/wui/settings.html',
  90. 'src/wui/info.min.html': 'src/wui/info.html',
  91. 'src/wui/history.min.html': 'src/wui/history.html',
  92. 'src/wui/ups_history.min.html': 'src/wui/ups_history.html'
  93. }
  94. },
  95. 'wui-6': {
  96. options: {
  97. removeComments: true,
  98. collapseWhitespace: true,
  99. minifyJS : true
  100. },
  101. files: {
  102. 'src/wui-6/login.min.html': 'src/wui-6/login.html',
  103. 'src/wui-6/rslogin.min.html': 'src/wui-6/rslogin.html',
  104. 'src/wui-6/index.min.html': 'src/wui-6/index.html',
  105. 'src/wui-6/settings.min.html': 'src/wui-6/settings.html',
  106. 'src/wui-6/info.min.html': 'src/wui-6/info.html',
  107. 'src/wui-6/history.min.html': 'src/wui-6/history.html',
  108. 'src/wui-6/ups_history.min.html': 'src/wui-6/ups_history.html'
  109. }
  110. },
  111. upload: {
  112. options: {
  113. removeComments: true,
  114. collapseWhitespace: true,
  115. minifyJS : true
  116. },
  117. files: {
  118. 'dist/upload/index.html': 'src/upload/index.html',
  119. 'dist/upload/error.html': 'src/upload/error.html',
  120. 'dist/upload/success.html': 'src/upload/success.html'
  121. }
  122. }
  123. },
  124. imagemin: {
  125. wui:{
  126. options: {
  127. optimizationLevel: 0
  128. },
  129. files: [
  130. {'dist/wui/rotek.png': 'src/wui/rotek.png'},
  131. {'dist/wui-6/rotek.png': 'src/wui-6/rotek.png'},
  132. {'dist/wui/favicon.ico': 'src/wui/favicon.ico'},
  133. {'dist/wui-6/favicon.ico': 'src/wui-6/favicon.ico'},
  134. {'dist/upload/favicon.ico': 'src/upload/favicon.ico'}
  135. ]
  136. }
  137. },
  138. clean: {
  139. wui: {
  140. src: ['src/wui/main.min.js', 'src/wui/*.min.html', '!src/wui/main.js', 'src/wui/role.min.js', '!src/wui/role.js', 'src/wui/main.min.css', '!src/wui/main.css']
  141. },
  142. 'wui-6': {
  143. src: ['src/wui-6/main.min.js', 'src/wui-6/*.min.html', '!src/wui-6/main.js', 'src/wui-6/role.min.js', '!src/wui-6/role.js', 'src/wui-6/main.min.css', '!src/wui-6/main.css']
  144. },
  145. upload: {
  146. src: ['src/upload/upload.min.js', '!src/upload/upload.js', 'src/upload/upload.min.css', '!src/upload/upload.css']
  147. },
  148. clear: {
  149. src: 'dist*/*'
  150. }
  151. },
  152. jshint: {
  153. all: ['Gruntfile.js', 'src/wui/main.js', 'src/wui-6/main.js', 'src/upload/upload.js']
  154. }
  155. });
  156. grunt.loadNpmTasks('grunt-contrib-htmlmin');
  157. grunt.loadNpmTasks('grunt-contrib-uglify');
  158. grunt.loadNpmTasks('grunt-contrib-cssmin');
  159. grunt.loadNpmTasks('grunt-contrib-clean');
  160. grunt.loadNpmTasks('grunt-contrib-compress');
  161. grunt.loadNpmTasks('grunt-contrib-imagemin');
  162. grunt.loadNpmTasks('grunt-contrib-jshint');
  163. grunt.registerTask('default', ['cssmin','uglify','htmlmin','clean:wui','clean:upload']);
  164. grunt.registerTask('build', ['cssmin','uglify','htmlmin','compress','clean:wui','clean:wui-6','clean:upload','imagemin']);
  165. grunt.registerTask('clear', ['clean:clear']);
  166. grunt.registerTask('jhint', ['jshint']);
  167. };