web-dev-qa-db-fra.com

Gruntfile.js - Tâche "par défaut" introuvable

Voici mon Gruntfile.js

module.exports = function(grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON("package.json"),

        uglify: {
          options: {
            mangle: true
          }
          build: {
            src: "js/*.js",
            dest: "js/min/script.js"
          }
        }

    });

    grunt.loadNpmTasks("grunt-contrib-uglify");

    grunt.registerTask('default', [uglify]);

};

Voici mon package.json - j'ai exécuté npm install déjà, avec tous les plugins que j'utiliserai dans mon Gruntfile, grunt-contrib-uglify en fait partie.

{
  "name": "bootbuckle",
  "version": "0.1.0",
  "engines": {
    "node": ">= 0.10.0"
  },
  "devDependencies": {
    "grunt": "~0.4.2",
    "grunt-contrib-watch": "~0.5.3",
    "grunt-contrib-sass": "~0.6.0",
    "grunt-csscomb": "~2.0.1",
    "grunt-contrib-htmlmin": "~0.1.3",
    "grunt-contrib-imagemin": "~0.4.1",
    "grunt-contrib-uglify": "~0.2.7"
  }
}

Quand je lance simplement grunt dans le terminal - voici l'erreur

  build: {
  ^^^^^
Loading "Gruntfile.js" tasks...ERROR
>> SyntaxError: Unexpected identifier
Warning: Task "default" not found. Use --force to continue.
Aborted due to warnings.

Merci d'avance pour toute aide que vous pourriez fournir.


EDIT Suivant les conseils de Matti, j'ai inséré une virgule manquante, une nouvelle erreur est maintenant lancée

Loading "Gruntfile.js" tasks...ERROR
>> ReferenceError: uglify is not defined
Warning: Task "default" not found. Use --force to continue.
Aborted due to warnings.
22
Kevin Lewis

Vous avez manqué une virgule ici:

    uglify: {
      options: {
        mangle: true
      }, // <-------
      build: {
        src: "js/*.js",
        dest: "js/min/script.js"
      }
    }

Edit: tel que publié par japrescott, vous devez définir la tâche uglify comme une chaîne.

grunt.registerTask('default', ["uglify"]);
30
Matti Mehtonen

essayez comme ça

  grunt.registerTask('default', ["uglify"]);
11
japrescott