Gruntfile.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. /**
  2. * Created by Tivie on 12-11-2014.
  3. */
  4. module.exports = function (grunt) {
  5. // Project configuration.
  6. var config = {
  7. pkg: grunt.file.readJSON('package.json'),
  8. concat: {
  9. options: {
  10. sourceMap: true,
  11. banner: ';/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n(function(){\n',
  12. footer: '}).call(this);'
  13. },
  14. dist: {
  15. src: [
  16. 'src/showdown.js',
  17. 'src/helpers.js',
  18. 'src/converter.js',
  19. 'src/subParsers/*.js',
  20. 'src/loader.js'
  21. ],
  22. dest: 'dist/<%= pkg.name %>.js'
  23. }
  24. },
  25. uglify: {
  26. options: {
  27. sourceMap: true,
  28. banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n'
  29. },
  30. dist: {
  31. files: {
  32. 'dist/<%= pkg.name %>.min.js': ['<%= concat.dist.dest %>']
  33. }
  34. }
  35. },
  36. jshint: {
  37. options: {
  38. jshintrc: '.jshintrc'
  39. },
  40. files: [
  41. 'Gruntfile.js',
  42. 'src/**/*.js',
  43. 'test/**/*.js'
  44. ]
  45. },
  46. jscs: {
  47. options: {
  48. config: '.jscs.json'
  49. },
  50. files: {
  51. src: [
  52. 'Gruntfile.js',
  53. 'src/**/*.js',
  54. 'test/**/*.js'
  55. ]
  56. }
  57. },
  58. changelog: {
  59. options: {
  60. repository: 'http://github.com/showdownjs/showdown',
  61. dest: 'CHANGELOG.md'
  62. }
  63. },
  64. bump: {
  65. options: {
  66. files: ['package.json'],
  67. updateConfigs: [],
  68. commit: true,
  69. commitMessage: 'Release version %VERSION%',
  70. commitFiles: ['package.json'],
  71. createTag: true,
  72. tagName: '%VERSION%',
  73. tagMessage: 'Version %VERSION%',
  74. push: true,
  75. pushTo: 'upstream',
  76. gitDescribeOptions: '--tags --always --abbrev=1 --dirty=-d',
  77. globalReplace: false,
  78. prereleaseName: 'alpha',
  79. regExp: false
  80. }
  81. },
  82. simplemocha: {
  83. node: {
  84. src: 'test/node/**/*.js',
  85. options: {
  86. globals: ['should'],
  87. timeout: 3000,
  88. ignoreLeaks: false,
  89. reporter: 'spec'
  90. }
  91. },
  92. karlcow: {
  93. src: 'test/node/testsuite.karlcow.js',
  94. options: {
  95. globals: ['should'],
  96. timeout: 3000,
  97. ignoreLeaks: false,
  98. reporter: 'spec'
  99. }
  100. },
  101. browser: {
  102. src: 'test/browser/**/*.js',
  103. options: {
  104. reporter: 'spec'
  105. }
  106. }
  107. }
  108. };
  109. grunt.initConfig(config);
  110. require('load-grunt-tasks')(grunt);
  111. grunt.registerTask('concatenate', ['concat']);
  112. grunt.registerTask('lint', ['jshint', 'jscs']);
  113. grunt.registerTask('test', ['lint', 'concat', 'simplemocha:node']);
  114. grunt.registerTask('test-without-building', ['simplemocha:node']);
  115. grunt.registerTask('build', ['test', 'uglify']);
  116. grunt.registerTask('prep-release', ['build', 'changelog']);
  117. // Default task(s).
  118. grunt.registerTask('default', ['test']);
  119. };