Предупреждение о грунге: задача "по умолчанию" не найдена

Я экспериментирую с Grunt, и я получаю предупреждение: задача "по умолчанию" не найдена, когда я пытаюсь запустить Grunt. my Gruntfile.js

module.exports = function(grunt) {

grunt.initConfig({
concat: {
  js: {
    options: {
      separator: ';'
    },
    src: [
      'library/js/*.js'
    ],
    dest: 'library/js/scripts.min.js'
  },
},

uglify: {
  options: {
    mangle: false
  },
  js: {
    files: {
      'library/js/scripts.min.js': ['library/js/scripts.min.js']
    }
  }
},

less: {
  style: {
    files: {
      "library/css/style.css": "library/less/style.less"
    },
  }
},

watch: {
  js: {
    files: ['library/js/*.js'],
    tasks: ['concat:js', 'uglify:js'],
    options: {
        livereload: 35729
    }
  },
  css: {
    files: ['library/less/*.less'],
    tasks: ['less:style'],
    options {
        livereload: 35729
    }
  },
  php : {
    files : ['**/*.php'],
    options : {
      livereload : 35729
      } 
  }
}
  });



grunt.loadNpmTasks('grunt-contrib-concat');
  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-less');
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.registerTask('default', ['watch']);
};

Это работало, пока я не добавил части Livereload, и я думаю, что это может быть синтаксическая ошибка. Однако это первый раз, когда я использовал это, и я просто не знаю, что вызывает проблему. Любая помощь будет принята с благодарностью.

Ответ 1

Вам не хватает двоеточия для watch.css.options. Обновить до:

css: {
    files: ['library/less/*.less'],
    tasks: ['less:style'],
    options: {
        livereload: 35729
    }
}

Ответ 2

В случае, если кто-то найдет это позже, чтобы получить работу с печью, мне пришлось изменить раздел часов на

watch: {
  js: {
    files: ['library/js/*.js'],
    tasks: ['concat:js', 'uglify:js'],
  },
  css: {
    files: ['library/less/*.less'],
    tasks: ['less:style'],
  },
  php : {
    files: ['**/*.php'],
  },
  options: {
      livereload: true,
      spawn: false
  }
}