2
0

Gruntfile.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. module.exports = function( grunt ) {
  2. var fs = require('fs')
  3. grunt.initConfig({
  4. component_build: {
  5. dev: {
  6. output: './dist/',
  7. name: 'seed',
  8. dev: true,
  9. sourceUrls: true,
  10. styles: false,
  11. verbose: true,
  12. standalone: true
  13. },
  14. build: {
  15. output: './dist/',
  16. name: 'seed',
  17. styles: false,
  18. standalone: true
  19. },
  20. test: {
  21. output: './test/',
  22. name: 'seed.test',
  23. styles: false
  24. }
  25. },
  26. jshint: {
  27. build: {
  28. src: ['src/**/*.js'],
  29. options: {
  30. jshintrc: "./.jshintrc"
  31. }
  32. }
  33. },
  34. mocha: {
  35. unit: {
  36. src: ['test/unit/*.html'],
  37. options: {
  38. reporter: 'Spec',
  39. run: true
  40. }
  41. },
  42. e2e: {
  43. src: ['test/e2e/*.html'],
  44. options: {
  45. reporter: 'Spec',
  46. run: true
  47. }
  48. }
  49. },
  50. uglify: {
  51. build: {
  52. options: {
  53. compress: true,
  54. mangle: true
  55. },
  56. files: {
  57. 'dist/seed.min.js': 'dist/seed.js'
  58. }
  59. }
  60. },
  61. watch: {
  62. options: {
  63. livereload: true
  64. },
  65. component: {
  66. files: ['src/**/*.js', 'component.json'],
  67. tasks: ['component_build:dev', 'component_build:test']
  68. }
  69. }
  70. })
  71. grunt.loadNpmTasks( 'grunt-contrib-watch' )
  72. grunt.loadNpmTasks( 'grunt-contrib-jshint' )
  73. grunt.loadNpmTasks( 'grunt-contrib-uglify' )
  74. grunt.loadNpmTasks( 'grunt-component-build' )
  75. grunt.loadNpmTasks( 'grunt-mocha' )
  76. grunt.registerTask( 'test', ['component_build:test', 'mocha'] )
  77. grunt.registerTask( 'default', [
  78. 'jshint',
  79. 'component_build:build',
  80. 'test',
  81. 'uglify'
  82. ])
  83. grunt.registerTask( 'version', function (version) {
  84. ;['package', 'bower', 'component'].forEach(function (file) {
  85. file = './' + file + '.json'
  86. var json = fs.readFileSync(file, 'utf-8')
  87. json = json.replace(/"version"\s*:\s*"(.+?)"/, '"version": "' + version + '"')
  88. fs.writeFileSync(file, json)
  89. })
  90. })
  91. grunt.registerTask( 'release', function (version) {
  92. grunt.task.run(['default', 'version:' + version])
  93. })
  94. }