56 votes

Grunt sous Windows 8 : 'grunt' n'est pas reconnu

J'ai un problème pour exécuter Grunt à partir de la ligne de commande sur ma machine Windows 8.

Mes recherches indiquent que la solution la plus courante consiste à installer grunt-cli, puisque Grunt n'est plus global. Je dois également m'assurer que j'installe effectivement le gestionnaire de tâches Grunt, car il n'est pas installé avec grunt-cli.

D'autres solutions pointent vers la variable d'environnement système PATH, mais celle-ci semble pointer comme je m'y attendrais :

C:\Users [nom d'utilisateur] \AppData\Roaming\npm

Après avoir fait tout cela, je reçois toujours un message d'erreur "'grunt' n'est pas reconnu comme une commande interne ou externe, un programme exploitable ou un fichier batch" dans le CLI. J'ai essayé les choses suivantes, en désinstallant tout après chaque tentative :

  • Installation globale de grunt-cli (npm install -g grunt-cli), puis de grunt au niveau du répertoire où je veux l'utiliser (npm install grunt).
  • Comme ci-dessus, mais avec l'ordre d'installation inversé.
  • La même chose que les deux précédentes, mais en utilisant l'invite de commande de l'administrateur.

Est-ce que je rate quelque chose d'évident ?

8 votes

Après npm install -g grunt-cli , type where grunt . Quel est le résultat ?

0 votes

@WiredPrairie : INFO : Impossible de trouver des fichiers pour le(s) motif(s) donné(s).

1 votes

Est grunt.cmd situé dans votre AppData\Roaming\npm dossier ?

63voto

Rik Leigh Points 680

Je n'ai pas eu de problèmes avec grunt sur plusieurs machines Windows 8 différentes.

Si vous ouvrez le dossier C:\Users [nom d'utilisateur] \AppData\Roaming\npm

Avez-vous un fichier nommé grunt.cmd dans ce dossier ?

Si ce n'est pas le cas, j'essaierais peut-être à nouveau de faire un npm install -g grunt-cli, peut-être à partir d'une invite de commande élevée.

Si cela existe et que vous avez C:\Users [nom d'utilisateur] \AppData\Roaming\npm dans votre variable d'environnement PATH, alors taper grunt à partir d'une invite de commande devrait fonctionner.

Question stupide, avez-vous essayé de fermer l'invite de commande et d'en ouvrir une nouvelle ?

0 votes

J'y ai le fichier grunt.cmd, ainsi qu'un répertoire node_modules et un fichier nommé grunt de type FILE. J'ai essayé avec plusieurs invites de commande différentes, à la fois ordinaire et administrateur. J'ai aussi essayé d'installer autre chose (express), mais j'ai le même problème, donc je ne pense pas que ce soit un problème de Grunt, plutôt un problème de npm.

0 votes

Ce n'est pas un problème de npm, car il stocke les fichiers correctement, selon ce que vous avez fourni. Windows ne trouve pas le fichier.

2 votes

Si vous ouvrez une invite de commande à C:\Users [nom d'utilisateur] \AppData\Roaming\npm et ensuite lancer grunt, est-ce que ça marche ?

37voto

WiredPrairie Points 18683

Confirmez votre PATH est correct (et non perturbé). Il suffit de taper PATH à partir de l'invite de commande. Il n'y a pas vraiment d'autre explication qui ait du sens compte tenu de l'erreur que vous décrivez et des étapes que vous avez suivies.

Normalement, l'utilisation du where grunt La commande aurait trouvé grunt.cmd dans votre chemin si npm est installé correctement et il a été ajouté au chemin du système.

2 votes

La version actuelle de NodeJS 64 bits pour Windows a bousillé le PATH à l'installation. J'ai désinstallé la version 64 bits et installé la version x86 à la place et maintenant tout fonctionne comme prévu.

10 votes

En fait, ce n'est pas le PATH qui est défectueux, c'est l'emplacement où il est installé. Nodejs s'installe dans C:\Program Archivos \nodejs mais installe tous les modules dans C:\Users\Username\AppData\Roaming\npm

2 votes

C:\Users\Username\AppData\Roaming\npm a disparu à nouveau du chemin ! !! et après l'avoir ajouté à nouveau, il a été ajouté comme ça. \C:\Users\Username\AppData\Roaming\npm avec une barre oblique supplémentaire au début

16voto

Virtlink Points 12475
  1. Fermez toutes les instances de l'invite de commande.

  2. Démarrez une nouvelle instance de l'invite de commande.

  3. Type PATH Enter et vérifier si C:\Users\Username\AppData\Roaming\npm fait partie du chemin.

  4. Si non, vous devez vous déconnecter et vous reconnecter ,
    ou fermer l'invite de commande et redémarrer l'ordinateur. explorer processus.

  5. Dans l'invite de commande, tapez where grunt Enter .
    Vous êtes bon si ça rapporte :

    C:\Users\Username\AppData\Roaming\npm\grunt
    C:\Users\Username\AppData\Roaming\npm\grunt.cmd
  6. Sinon, vous devez réinstaller le grunt-cli si elle le signale :

    INFO: Could not find files for the given pattern(s).

Apparemment, les programmes qui changent le PATH doit diffuser une variable d'environnement WM_SETTINGCHANGE message. Les fenêtres Système le fait correctement lorsque vous modifiez la fenêtre des paramètres PATH mais l'installateur NPM ne le fait pas. C'est pourquoi vous devez redémarrer l'explorateur (ou vous déconnecter ou redémarrer, ce qui a le même effet).

7voto

Tom Gillard Points 218

Je sais que cette question a déjà été traitée, mais j'ai pensé vous proposer ma solution pas à pas pour Windows 8.

La première chose que j'ai vérifiée est le PATH dans les variables d'environnement de mon ordinateur (clic droit sur mon ordinateur > propriétés > paramètres système avancés > variables d'environnement).

Elle n'y figurait pas, j'ai donc ajouté une nouvelle variable dans Variables d'utilisateur (pour qu'elle soit spécifique à mon seul compte d'utilisateur).

Dans l'invite de la nouvelle variable utilisateur, j'ai entré ce qui suit ;

Variable Name: PATH

Variable Value: %USERPROFILE%\AppData\Roaming\npm

J'ai quitté l'invite de commande, j'ai fait un dépôt, j'ai navigué dans mon répertoire de projets et j'ai essayé d'exécuter grunt encore une fois et... SUCCÈS !

5voto

jsicary Points 361

J'ai eu le même problème.

J'ai essayé différentes choses :

  • Redémarrer l'ordinateur
  • J'ai supprimé le dossier grunt et j'ai exécuté

npm install -g grunt -cli

Ça n'a pas marché.

J'ai enfin essayé :

npm install -g grunt-cli

Il a fonctionné parfaitement.

Essayé

où le grognement

et j'ai vu 2 endroits où il a été trouvé.

3 votes

J'ai perdu une heure de ma vie à cause de cette tape supplémentaire sur la barre d'espace. Je voterais encore une fois si je pouvais.

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