web-dev-qa-db-fra.com

Erreur fatale: impossible de trouver un grognement local dans Yeoman

J'ai installé yeoman et commencé les exemples fournis dans la documentation officielle. Je suis passé par les opérations suggérées

    yo webapp 
    bower install underscore  
    grunt

Après avoir exécuté grognement, j'ai le message

    grunt-cli: The grunt command line interface. (v0.1.9)

    Fatal error: Unable to find local grunt.

    If you're seeing this message, either a Gruntfile wasn't found or grunt
    hasn't been installed locally to your project. For more information about
    installing and configuring grunt, please see the Getting Started guide:

    http://gruntjs.com/getting-started

Notez que grunt a été installé avec

    npm install -g grunt-cli

et

    npm install -g grunt

yo a généré le Gruntfile.js dans la racine du projet, où j'exécute la commande.
Le package.json a également été généré:

    "name": "testyo",
    "version": "0.0.0",
    "dependencies": {},
    "devDependencies": {
      "grunt": "~0.4.1",
      "grunt-contrib-copy": "~0.4.1",
      "grunt-contrib-concat": "~0.1.3",
      "grunt-contrib-coffee": "~0.6.5",
      "grunt-contrib-uglify": "~0.2.0",
      "grunt-contrib-compass": "~0.2.0",
      "grunt-contrib-jshint": "~0.4.1",
      "grunt-contrib-cssmin": "~0.6.0",
      "grunt-contrib-connect": "~0.2.0",
      "grunt-contrib-clean": "~0.4.0",
      "grunt-contrib-htmlmin": "~0.1.3",
      "grunt-contrib-imagemin": "~0.1.3",
      "grunt-contrib-watch": "~0.4.0",
      "grunt-rev": "~0.1.0",
      "grunt-autoprefixer": "~0.1.20130516",
      "grunt-usemin": "~0.1.10",
      "grunt-mocha": "~0.3.0",
      "grunt-open": "~0.2.0",
      "grunt-svgmin": "~0.1.0",
      "grunt-concurrent": "~0.1.0",
      "matchdep": "~0.1.1",
      "connect-livereload": "~0.2.0"
    },
    "engines": {
      "node": ">=0.8.0"
    }

Aditionellement. Depuis le répertoire racine

    grunt --version
    grunt-cli v0.1.9

Cela confirme que grunt est disponible pour être exécuté dans chaque répertoire.
Une idée?

49
blackbird014

Après quelques recherches rapides, j'ai réalisé, à partir de la documentation grunt , que grunt doit être installé dans le projet. Je l'ai fait en exécutant:

    Sudo npm install grunt --save-dev

Maintenant, grognement fonctionne.

J'avais aussi besoin de courir:

    npm install

afin que toutes les dépendances soient chargées.

Cela a résolu mon problème. Pour être honnête, je pensais que Yeoman aurait pris soin des deux dernières étapes automatiquement.

Si vous avez des commentaires ou pensez qu'il existe une meilleure solution, veuillez laisser un commentaire.

91
blackbird014
npm cache clean
Sudo npm install grunt --save-dev

a vraiment fait l'affaire pour moi

13
Paulo Almeida

J'ai rencontré le même problème.

Après avoir exécuté npm install, assurez-vous qu'un dossier node_modules est créé à la racine de votre projet. C'est le dossier où sera placé "grognement local". Si le dossier n'est pas là, vérifiez votre configuration npm npm config ls et assurez-vous d'avoir global=false.

J'ai trouvé la solution ici: https://stackoverflow.com/a/13449393/1046584

2
Luís Bianchin