Gruntfile.js 2.9 KB

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