3 votes

Erreur lors de l'envoi de la commande Grunt

J'ai commencé à explorer Grunt. J'ai lu plusieurs sites, j'ai vu des exemples. J'ai créé package.json et Gruntfile.js :

paquet.json http://pastebin.com/Kkt8fuXJ

Gruntfile.j http://pastebin.com/LnSmTzXZ

L'organisation des dossiers de mon projet est la suivante :

root (index.html)
-src (where is package.json and Gruntfile.js)
-lib
 --css
  ---min
 --js
 --img

Lorsque je donne la commande grunt se produit toujours cette erreur :

Loading "Gruntfile.js" tasks...ERROR
>> Error: Unable to parse "package.json" file (Unexpected token }).
Warning: Task "default" not found. Use --force to continue.

Aborted due to warnings.

Si je supprime pkg : grunt.file.readJSON('package.json'), :

        grunt.loadNpmTasks('grunt-contrib-imagemin');
        ^^^^^
Loading "Gruntfile.js" tasks...ERROR
>> SyntaxError: Unexpected identifier
Warning: Task "default" not found. Use --force to continue.

Aborted due to warnings.

Qu'est-ce qui ne va pas ?

Merci

5voto

Stephan Bönnemann Points 2238

La première erreur est due au fait que votre package.json n'est pas un JSON valide. D'après ce que je vois, vous utilisez une virgule inutile à la fin de la ligne 9. Un JSON valide serait celui-ci :

{
  "name": "EREBD",
  "description": "Site do evento EREBD XVII",
  "version": "1.0.0",
  "main": "Gruntfile.js",
  "dependencies": {
    "grunt": "~0.4.1",
    "grunt-contrib-cssmin": "~0.6.1",
    "grunt-contrib-imagemin": "~0.1.4"  //<- no comma there
  }
}

Mais vous n'avez même pas besoin d'importer le package.json dans le fichier Grunt, car vous n'utilisez aucune de ses propriétés de toute façon. Alors qu'est-ce qui ne va pas avec votre Gruntfile ? Eh bien, vous chargez vos tâches npm et définissez vos tâches Grunt en dehors de la fonction exportée. Voici à quoi cela ressemble dans le bon sens :

module.exports = function(grunt) {
    grunt.initConfig({
        // image optimization
        imagemin: {
            dist: {
                options: {
                    optimizationLevel: 4,
                    progressive: true
                },
                files: [{
                    expand: true,
                    cwd: '../lib/img/',
                                        src: '**/*',
                    dest: '../lib/img/'
                }]
            }
        },
        // minify css
        cssmin: {
                minify: {
                    expand: true,
                    src: ['../lib/css/*.css'],
                    dest: '../lib/css/min/',
                    ext: '.min.css'
                }
        }
    });

    // load tasks
    grunt.loadNpmTasks('grunt-contrib-imagemin');
    grunt.loadNpmTasks('grunt-contrib-cssmin');

    // extra tasks

    // register task
    grunt.registerTask('default', [
        'imagemin',
        'cssmin'
    ]);
};

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X