Gruntfile.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. module.exports = function (grunt) {
  2. grunt.initConfig({
  3. pkg: grunt.file.readJSON('package.json'),
  4. clean: {
  5. js: [
  6. 'web/assets/js'
  7. ]
  8. },
  9. sass: {
  10. build: {
  11. options: {
  12. sourcemap: 'none',
  13. style: 'expanded'
  14. },
  15. files: [{
  16. expand: true,
  17. cwd: 'app/Resources/assets/sass',
  18. src: ['**/*.scss'],
  19. dest: 'web/assets/css',
  20. ext: '.css'
  21. }]
  22. }
  23. },
  24. copy: {
  25. dt: {
  26. files: [{
  27. expand: true,
  28. cwd: 'app/Resources/lib/datatables/media/images',
  29. src: ['**/*'],
  30. dest: 'web/assets/images'
  31. }]
  32. },
  33. fonts: {
  34. files: [{
  35. expand: true,
  36. cwd: 'app/Resources/lib/bootstrap-sass/assets/fonts',
  37. src: ['**/*'],
  38. dest: 'web/assets/fonts'
  39. }]
  40. }
  41. },
  42. concat: {
  43. js: {
  44. options: {
  45. separator: ';\n'
  46. },
  47. files: {
  48. 'web/assets/js/main.js': [
  49. 'app/Resources/lib/jquery/dist/jquery.js',
  50. 'app/Resources/lib/bootstrap-sass/assets/javascripts/bootstrap.js',
  51. 'app/Resources/lib/datatables.net/js/jquery.dataTables.min.js',
  52. 'app/Resources/lib/datatables.net-bs/js/dataTables.bootstrap.js '
  53. ]
  54. }
  55. }
  56. },
  57. watch: {
  58. options: {
  59. livereload: true,
  60. spawn: false
  61. },
  62. ts: {
  63. files: ['app/Resources/assets/ts/**/*.ts'],
  64. tasks: ['typescript']
  65. }
  66. }
  67. });
  68. grunt.loadNpmTasks('grunt-sass');
  69. grunt.loadNpmTasks('grunt-symfony2');
  70. grunt.loadNpmTasks('grunt-contrib-concat');
  71. grunt.loadNpmTasks('grunt-contrib-copy');
  72. grunt.loadNpmTasks('grunt-contrib-clean');
  73. grunt.loadNpmTasks('grunt-contrib-watch');
  74. grunt.registerTask('default', ['clean:js', 'sass', 'copy:dt', 'copy:fonts', 'concat:js']);
  75. };