Gruntfile.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. module.exports = function (grunt) {
  2. //
  3. try{
  4. require('/usr/share/nodejs/grunt-cli/node_modules/load-grunt-tasks')(grunt);
  5. } catch (e){
  6. require('load-grunt-tasks')(grunt);
  7. }
  8. // Вся настройка находится здесь
  9. grunt.initConfig({
  10. pkg: grunt.file.readJSON('package.json'),
  11. clean: [
  12. 'web/css'
  13. ],
  14. copy: {
  15. css: {
  16. expand: true,
  17. src: [
  18. 'assets/css/tmp/style.css',
  19. ],
  20. dest: 'web/css/',
  21. flatten: true
  22. },
  23. },
  24. less: {
  25. a: {
  26. options: {
  27. compress: false,
  28. sourcemap: 'none'
  29. },
  30. files: {
  31. 'assets/css/tmp/_styles.css': 'assets/less/style.less',
  32. }
  33. }
  34. },
  35. concat: { // что будем склеивать
  36. css:{
  37. src: [
  38. 'assets/css/tmp/_styles.css',
  39. ],
  40. dest: 'assets/css/styles.css'
  41. }
  42. },
  43. cssmin: {
  44. options: {
  45. keepSpecialComments: 0, // затрем все комментарии
  46. mergeIntoShorthands: false,
  47. roundingPrecision: -1,
  48. sourceMap: false
  49. },
  50. target: {
  51. files: {
  52. 'web/css/site.min.css': ['assets/css/styles.css'],
  53. }
  54. }
  55. },
  56. });
  57. // less
  58. grunt.loadNpmTasks('grunt-contrib-less');
  59. // concat
  60. grunt.loadNpmTasks('grunt-contrib-concat');
  61. // минификация css
  62. grunt.loadNpmTasks('grunt-contrib-cssmin');
  63. // clean
  64. grunt.loadNpmTasks('grunt-contrib-clean');
  65. // copy
  66. grunt.loadNpmTasks('grunt-contrib-copy');
  67. // Указываем, какие задачи выполняются, когда мы вводим «grunt» в терминале
  68. grunt.registerTask('default', [
  69. 'less',
  70. 'concat',
  71. 'copy',
  72. 'cssmin'
  73. ]);
  74. };