Gruntfile.coffee 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. module.exports = (grunt) ->
  2. grunt.initConfig
  3. pkg: grunt.file.readJSON 'package.json'
  4. concat:
  5. js:
  6. options:
  7. separator: "\n"
  8. src: [
  9. 'bower_components/jQuery/dist/jquery.min.js'
  10. 'bower_components/js-md5/js/md5.min.js'
  11. 'bower_components/mousetrap/mousetrap.min.js'
  12. 'bower_components/mousetrap/plugins/global-bind/mousetrap-global-bind.min.js'
  13. '../assets/js/*.js'
  14. ]
  15. dest: '../assets/min/main.js'
  16. css:
  17. options:
  18. separator: "\n"
  19. src: [
  20. '../assets/css/*.css'
  21. ]
  22. dest: '../assets/min/main.css'
  23. uglify:
  24. assets:
  25. options:
  26. banner: '/*! <%= pkg.name %> <%= pkg.version %> | <%= grunt.template.today("yyyy-mm-dd") %> */\n'
  27. files:
  28. '../assets/min/main.js': '../assets/min/main.js'
  29. cssmin:
  30. assets:
  31. options:
  32. banner: '/*! <%= pkg.name %> <%= pkg.version %> | <%= grunt.template.today("yyyy-mm-dd") %> */'
  33. files:
  34. '../assets/min/main.css': '../assets/min/main.css'
  35. 'file-creator':
  36. manifest:
  37. "../assets/min/cache.manifest": (fs, fd, done) ->
  38. text = """
  39. CACHE MANIFEST
  40. # #{ (new Date()).valueOf().toString() }
  41. assets/min/main.css
  42. assets/min/main.js
  43. assets/img/no_images.svg
  44. assets/img/password.svg
  45. """
  46. fs.writeSync fd, text
  47. done()
  48. watch:
  49. js:
  50. files: [
  51. '../assets/js/*.js'
  52. ]
  53. tasks: ['js']
  54. options:
  55. spawn: false
  56. interrupt: true
  57. css:
  58. files: [
  59. '../assets/css/*.css'
  60. ]
  61. tasks: ['css']
  62. options:
  63. spawn: false
  64. interrupt: true
  65. require('load-grunt-tasks')(grunt)
  66. grunt.registerTask 'default', ->
  67. grunt.task.run [
  68. 'js'
  69. 'css'
  70. 'file-creator'
  71. ]
  72. grunt.registerTask 'js', [
  73. 'concat:js'
  74. 'uglify:assets'
  75. ]
  76. grunt.registerTask 'css', [
  77. 'concat:css'
  78. 'cssmin:assets'
  79. ]