web-dev-qa-db-fra.com

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

J'ai un problème avec l'exécution de Grunt à partir de la ligne de commande sur mon ordinateur Windows 8.

Mes recherches indiquent que la solution la plus courante consiste à installer grunt-cli, Grunt n'étant plus global. Je dois également m'assurer que j'installe réellement le programme d'exécution de tâches Grunt, car ce dernier n'est pas installé avec grunt-cli.

D'autres solutions pointent vers la variable d'environnement système PATH, mais cela semble être le cas, comme je l'espérerais:

C:\Utilisateurs [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 utilisable ou un fichier de commandes" dans la CLI. J'ai essayé les choses suivantes, en désinstallant tout après chaque tentative:

  • Installé grunt-cli globalement (npm installer -g grunt-cli), puis grogner au niveau du répertoire que je veux utiliser (npm install grunt)
  • Comme ci-dessus, mais avec l'ordre d'installation inversé
  • Identique aux deux précédentes, mais en utilisant l'invite de commande de l'administrateur

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

56
Daniel Attfield

Confirmez que votre PATH est correct (et non foiré). Il suffit de taper PATH à partir de la commande Invite. Il n'y a vraiment aucune autre explication qui soit logique étant donné l'erreur que vous décrivez et les mesures que vous avez prises.

Normalement, en utilisant le where grunt la commande aurait trouvé grunt.cmd dans votre chemin si npm est correctement installé et ajouté au chemin du système.

37
WiredPrairie

Je n'ai eu aucun problème avec grunt sur plusieurs machines Windows 8 différentes.

Si vous ouvrez le dossier: C:\Users\[username]\AppData\Roaming\npm

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

Sinon, j'essaierais peut-être npm install -g grunt-cli encore une fois, peut-être à partir d'une invite de commande élevée.

Si cela existe et que vous avez C:\Users\[username]\AppData\Roaming\npm dans votre variable d’environnement PATH, puis taper grunt à partir d’une commande, Invite devrait fonctionner.

Question idiote, avez-vous essayé de fermer la commande Invite et d’en ouvrir une nouvelle?

63
Rik Leigh
  1. Fermez toutes les instances d'invite de commandes.
  2. Démarrer une nouvelle instance d'invite de commande.
  3. Tapez 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 fermez l'invite de commande et redémarrez le processus Explorer.
  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 package s'il indique:

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

Apparemment, les programmes qui changent la variable d’environnement PATH doivent diffuser un message WM_SETTINGCHANGE message. La fenêtre de paramètres système de Windows le fait correctement lorsque vous modifiez la variable PATH, mais pas le programme d'installation de NPM. C'est pourquoi vous devez redémarrer Explorer (ou vous déconnecter ou redémarrer, ce qui a le même effet).

16

Je sais que cette question a été résolue, mais je pensais proposer ma solution étape par étape pour Windows 8.

La première chose que j’ai vérifiée était le PATH de mon ordinateur portable. Variables d’environnement (Cliquez avec le bouton droit de la souris sur mon ordinateur> Propriétés> Paramètres système avancés> Variables d’environnement)

Comme il ne figurait pas dans la liste, j'ai ajouté une nouvelle variable dans les variables utilisateur (elle était donc spécifique à mon compte utilisateur).

Dans la nouvelle variable utilisateur Invite, j’ai saisi les données suivantes:

Variable Name: PATH

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

Quittez la commande Prompt, repoened, naviguez dans le répertoire de mes projets et essayez d’exécuter à nouveau grunt et ... SUCCESS!

5
Tom Gillard

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

J'ai essayé différentes choses:

  • Redémarrer l'ordinateur
  • Supprimé le dossier Grunt et exécuté

npm installer -g grunt -cli

N'a pas fonctionné.

Enfin essayé:

npm installer -g grunt-cli

A parfaitement fonctionné.

A tenté

où grunt

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

5
jsicary

Je faisais face au même problème sur Windows 8

J'ai ajouté '% APPDATA%\npm' à la variable de chemin. Cela a bien fonctionné.

4
JP Bala Krishna

Il m'est arrivé la même chose et voici la solution: avez-vous 2 versions différentes de Node.JS installées? Peut-être nodiste? Cela signifie que vous avez probablement installé NPM à deux reprises, ce qui installera les commandes dans deux dossiers différents: Une fois dans C:\Users\<user>\AppData\Roaming\npm et une fois dans C:\dev\nodist\bin\bin.

C:\dev\nodist\bin\bin n'était pas sur ma variable de chemin, je l'ai donc ajoutée et j'ai supprimé la version de Node.JS que je ne voulais pas utiliser.

1
sebbulon

J'ai un problème avec Windows 8, après l'installation de grunt-cli, j'ai toujours "commande introuvable" pendant que j'essayais de vérifier grunt -v Ou where grunt. J'ai donc ajouté à l'environnement PATH ce chemin C:\Program Files (x86)\Git\local et exécuter grunt.cmd à partir de ce dossier (vous devez rechercher dans le dossier node_modules ici). Et après avoir rechargé mon terminal, tout a commencé à fonctionner.

1
Chekit

parfois, l'installation de NPM corrompt le chemin de base de Windows. J'ai généralement une copie de ma propre version de PATH maintenue séparément. chaque semaine ou sur certaines installations, je configure et met à jour manuellement la variable% PATH%.

En gros, Grunt.cmd n'est pas disponible via la variable% PATH%.

1
kadalamittai

Si vous n'avez pas de fichier grunt.cmd créé par npm, assurez-vous de ne pas avoir . Npmrc dans votre répertoire personnel avec: bin-links=false dedans.

0
winblood