Gruntfile.js 2.4 KB

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