GruntFile.coffee 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. module.exports = (grunt) ->
  2. grunt.initConfig
  3. pkg: grunt.file.readJSON "packages/lungo/component.json"
  4. meta:
  5. file: 'lungo'
  6. packages: "packages",
  7. # BETA
  8. endpoint: "example/components",
  9. version: ".brownie",
  10. # RELEASE
  11. # endpoint: "packages",
  12. # version: "",
  13. banner: '/* <%= pkg.name %> v<%= pkg.version %> - <%= grunt.template.today("yyyy/m/d") %>\n' +
  14. ' <%= pkg.homepage %>\n' +
  15. ' Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>' +
  16. ' - Licensed <%= _.pluck(pkg.license, "type").join(", ") %> */\n'
  17. resources:
  18. core: ['src/Lungo.coffee']
  19. modules: [
  20. 'src/modules/Lungo.Attributes.coffee',
  21. 'src/modules/Lungo.Cache.coffee',
  22. 'src/modules/Lungo.Constants.coffee',
  23. 'src/modules/Lungo.Core.coffee',
  24. 'src/modules/Lungo.Dom.coffee',
  25. 'src/modules/Lungo.Events.coffee',
  26. 'src/modules/Lungo.Fallback.coffee',
  27. 'src/modules/Lungo.Init.coffee',
  28. 'src/modules/Lungo.Notification.coffee',
  29. 'src/modules/Lungo.Resource.coffee',
  30. 'src/modules/Lungo.Scroll.coffee',
  31. 'src/modules/Lungo.Service.coffee',
  32. 'src/modules/Lungo.Router.coffee',
  33. 'src/modules/Lungo.Aside.coffee',
  34. 'src/modules/Lungo.Section.coffee',
  35. 'src/modules/Lungo.Article.coffee',
  36. 'src/boot/*.coffee',
  37. 'src/element/*.coffee']
  38. javascripts: [
  39. 'build/*.js']
  40. stylesheets: [
  41. 'src/stylesheets/lungo.base.styl',
  42. 'src/stylesheets/lungo.layout.styl',
  43. 'src/stylesheets/lungo.layout.*.styl',
  44. 'src/stylesheets/lungo.widget.styl',
  45. 'src/stylesheets/lungo.widget.*.styl',
  46. 'src/stylesheets/lungo.media.*.styl']
  47. theme: [
  48. 'src/stylesheets/theme/*.styl']
  49. icons: [
  50. 'src/stylesheets/lungo.icon**.styl']
  51. coffee:
  52. compile:
  53. files:
  54. 'build/<%= meta.file %>.core.js': ['<%= resources.core %>']
  55. 'build/<%= meta.file %>.modules.js': ['<%= resources.modules %>']
  56. concat:
  57. dist:
  58. src: ['<%= resources.javascripts %>'],
  59. dest: '<%=meta.endpoint%>/<%=meta.file%><%=meta.version%>/<%=meta.file%>.debug.js'
  60. uglify:
  61. options:
  62. compress: false
  63. banner: '<%= meta.banner %>'
  64. endpoint:
  65. files: '<%=meta.endpoint%>/<%=meta.file%><%=meta.version%>/<%=meta.file%>.js': '<%=resources.javascripts %>'
  66. stylus:
  67. stylesheets:
  68. files: '<%=meta.endpoint%>/<%=meta.file%><%=meta.version%>/<%=meta.file%>.css': '<%=resources.stylesheets%>'
  69. theme:
  70. options: compress: true
  71. files: '<%=meta.endpoint%>/<%=meta.file%><%=meta.version%>/<%=meta.file%>.theme.css': '<%=resources.theme%>'
  72. icons:
  73. files: '<%=meta.packages%>/<%=meta.file%>.icon/<%=meta.file%>.icon.css': '<%=resources.icons%>'
  74. copy:
  75. theme:
  76. expand: true, flatten: true, src: '<%=resources.theme%>', dest: '<%=meta.packages%>/<%=meta.file%>.theme/'
  77. watch:
  78. files: ['<%= resources.core %>', '<%= resources.modules %>', '<%= resources.stylesheets %>', '<%= resources.theme %>']
  79. tasks: ["coffee", "concat", "stylus:stylesheets", "stylus:theme"]
  80. grunt.loadNpmTasks "grunt-contrib-coffee"
  81. grunt.loadNpmTasks "grunt-contrib-concat"
  82. grunt.loadNpmTasks "grunt-contrib-uglify"
  83. grunt.loadNpmTasks "grunt-contrib-stylus"
  84. grunt.loadNpmTasks "grunt-contrib-copy"
  85. grunt.loadNpmTasks "grunt-contrib-watch"
  86. grunt.registerTask "default", ["coffee", "concat", "uglify", "stylus", "copy"]