Gruntfile.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. var mountFolder = function(connect, dir) {
  2. return connect.static(require('path').resolve(dir));
  3. };
  4. module.exports = function(grunt) {
  5. require('load-grunt-tasks')(grunt);
  6. grunt.registerTask('serve', ['connect:serve', 'watch']);
  7. grunt.registerTask('dev', [
  8. 'clean',
  9. 'ngTemplateCache',
  10. 'concat',
  11. 'less',
  12. 'copy'
  13. ]);
  14. grunt.registerTask('default', [
  15. 'dev',
  16. 'uglify',
  17. 'cssmin'
  18. ]);
  19. grunt.initConfig({
  20. cmpnt: grunt.file.readJSON('bower.json'),
  21. banner: '/*! ngTable v<%= cmpnt.version %> by Vitalii Savchuk(esvit666@gmail.com) - ' +
  22. 'https://github.com/esvit/ng-table - New BSD License */\n',
  23. clean: {
  24. working: {
  25. src: ['ng-table.*', './.temp/views', './.temp/']
  26. }
  27. },
  28. copy: {
  29. styles: {
  30. files: [{
  31. src: './src/styles/ng-table.less',
  32. dest: './dist/ng-table.less'
  33. }]
  34. }
  35. },
  36. uglify: {
  37. js: {
  38. src: ['./dist/ng-table.js'],
  39. dest: './dist/ng-table.min.js',
  40. options: {
  41. banner: '<%= banner %>',
  42. sourceMap: true
  43. }
  44. }
  45. },
  46. concat: {
  47. js: {
  48. src: [
  49. 'src/scripts/01-*.js',
  50. 'src/scripts/02-*.js',
  51. 'src/scripts/03-*.js',
  52. 'src/scripts/04-*.js',
  53. 'src/scripts/05-*.js',
  54. 'src/scripts/06-*.js',
  55. './.temp/scripts/views.js',
  56. 'src/scripts/07-*.js'
  57. ],
  58. dest: './dist/ng-table.js'
  59. }
  60. },
  61. less: {
  62. css: {
  63. files: {
  64. './dist/ng-table.css': 'src/styles/ng-table.less'
  65. }
  66. }
  67. },
  68. cssmin: {
  69. css: {
  70. files: {
  71. './dist/ng-table.min.css': './dist/ng-table.css'
  72. },
  73. options: {
  74. banner: '<%= banner %>'
  75. }
  76. }
  77. },
  78. watch: {
  79. css: {
  80. files: 'src/styles/*.less',
  81. tasks: ['less'],
  82. options: {
  83. livereload: true
  84. }
  85. },
  86. js: {
  87. files: 'src/scripts/*.js',
  88. tasks: ['concat'],
  89. options: {
  90. livereload: true
  91. }
  92. },
  93. html: {
  94. files: 'src/ng-table/*.html',
  95. tasks: ['ngTemplateCache', 'concat'],
  96. options: {
  97. livereload: true
  98. }
  99. }
  100. },
  101. connect: {
  102. options: {
  103. port: 8000,
  104. hostname: 'localhost'
  105. },
  106. serve: {
  107. options: {
  108. middleware: function(connect) {
  109. return [
  110. mountFolder(connect, '.')
  111. ];
  112. }
  113. }
  114. }
  115. },
  116. ngTemplateCache: {
  117. views: {
  118. files: {
  119. './.temp/scripts/views.js': 'src/ng-table/**/*.html'
  120. },
  121. options: {
  122. trim: 'src/',
  123. module: 'ngTable'
  124. }
  125. }
  126. }
  127. });
  128. };