Quelle est la cause de cette erreur - «Erreur fatale: impossible de trouver un grognement local»

370

J'ai d'abord supprimé l'ancienne version de grunt, puis j'ai installé la nouvelle version de grunt, puis j'ai eu cette erreur:

D: \ www \ grunt-test \ grunt grunt-cli: l'interface de ligne de commande grunt. (v0.1.4)

Erreur fatale: impossible de trouver un grognement local.

Si vous voyez ce message, soit un Gruntfile n'a pas été trouvé, soit grunt n'a pas été installé localement sur votre projet. Pour plus d'informations sur l'installation et la configuration de grunt, veuillez consulter le guide de démarrage: http://gruntjs.com/getting-started

Est-ce parce qu'il n'y a pas de référence à grogner dans mon chemin système? Ou autre chose? J'ai déjà essayé de le réinstaller plusieurs fois.

Ryan Yiada
la source
6
Avez-vous installé globalement? npm install grunt -g
elclanrs
1
en avez-vous un Gruntfile.jsà l'origine de votre projet?
Simon Boudrias
6
@Garreh Cela fait un moment, mais essayez npm install grunt --save-devdepuis le terminal. Cela devrait ajouter la dernière version à votre package.json.
Romain
233
Oups - je l'ai eu avec un nouveau projet. Juste besoin de faire npm install!
poshaughnessy
6
nmp install - Installe les dépendances dans le dossier node_modules local.
pauvresva

Réponses:

291

Je pense que vous n'avez pas de grunt.jsfichier dans votre répertoire de projet. Utilisez grunt:init, qui vous donne des options telles que jQuery, node,commonjs. Sélectionnez ce que vous voulez, puis continuez. Cela fonctionne vraiment. Pour plus d'informations, vous pouvez visiter ce site .

Faites ceci:

 1. npm install -g grunt
 2. grunt:init  ( you will get following options ):
      jquery: A jQuery plugin
      node: A Node module
      commonjs: A CommonJS module
      gruntplugin: A Grunt plugin
      gruntfile: A Gruntfile (grunt.js)
 3 .grunt init:jquery (if you want to create a jQuery related project.).

Ça devrait marcher.

Solution pour v1.4:

1. npm install -g grunt-cli
2. npm init
   fill all details and it will create a package.json file.
3. npm install grunt (for grunt dependencies.)

Edit: Solution mise à jour pour les nouvelles versions:

 npm install grunt --save-dev
Anshul
la source
2
Cette version doit être l'ancienne (v0.3) .Aujourd'hui je ne l'ai pas installée, et installer le nouveau grunt (v0.4) appelé Grunt-CLI.something a changé ..
Ryan Yiada
29
Actuellement, npm install gruntinstalle grunt 0.3.x. Vous devrez faire `npm install [email protected] 'aller installer localement la version de grunt nécessaire pour grunt-cli
Jack
6
Je souhaite que les étapes d'installation de Grunt répondent à @ 0.4. Tordais vraiment mes mains en essayant de comprendre cela jusqu'à ce que je trouve votre commentaire.
cnp
2
npm install grunt --save-devl'a fait pour moi
Vinicius Pinto
6
grunt-clidoit être installé globalement, mais il s'attend à ce que vous ayez une installation locale de grunt.jsdans votre projet. Cela permet à chaque projet d'utiliser une version différente de grunt. J'utilise généralement npm avec un fichier package.json pour installer grunt.js tous les autres conribs grunt, etc.
Henry
164

Installez Grunt dans node_modules plutôt que globalement

Unable to find local Grunt signifie probablement que vous avez installé Grunt dans le monde.

La CLI Grunt insiste pour que vous installiez grunt dans votre répertoire local node_modules, afin que Grunt soit local à votre projet.

Cela échouera:

npm install -g grunt

Faites ceci à la place:

npm install grunt --save-dev
superluminaire
la source
83

Faire

npm install

pour installer Grunt localement ./node_modules(et tout le reste spécifié dans le package.jsonfichier)

Klas Mellbourn
la source
4
J'ai fait cette cause comme un imbécile J'ai oublié d'exécuter cette commande après avoir tiré le dépôt du nouveau projet sur mac .....: /
neoswf
1
Comment se fait-il que grunt doive être installé localement puisque l'outil de ligne de commande peut toujours être localisé globalement?
Mike M
1
@MikeM parfois vous avez node_modules/.bindans votre PATH. En outre, local et global peuvent être des versions différentes.
Klas Mellbourn
Dans mon cas, c'était la faute de NetBeans. Parfois, cela bloque mes projets lorsque je le fais git stashdans un outil externe, ici, il a supprimé certains modules node_moduleset tout a cessé de fonctionner (et fonctionnait bien avant). Après npm installça marche encore bien.
Wirone
26

Si vous avez déjà un fichier package.jsondans le projet et qu'il contient grunten dépendance,

  "devDependencies": {
    "grunt": "~0.4.0",

Ensuite, vous pouvez exécuter npm installpour résoudre le problème

Anthony Kong
la source
5

J'ai fait l'erreur d'installer certains paquets en utilisant sudo et d'autres sans privilèges, cela a résolu mon problème.

sudo chown -R $(whoami) $HOME/.npm

j'espère que cela aide quelqu'un.

misterzik
la source
5

Il indique que vous n'avez pas de section locale, gruntalors essayez:

npm install grunt

(sans -gc'est un local grunt)

Bien qu'il ne soit pas directement lié, assurez-vous de l'avoir Gruntfile.jsdans votre dossier actuel.

Tomer Ben David
la source
4

Il pourrait y avoir quelques problèmes ici selon la version de grunt utilisée. Les nouvelles versions de grunt spécifient en fait que vous avez un fichier nommé Gruntfile.js(au lieu de l'ancien grunt.js).

Vous devriez avoir l' grunt-clioutil installé globalement (cela se fait via npm install -g grunt-cli). Cela vous permet d'exécuter des gruntcommandes à partir de la ligne de commande.

Assurez-vous ensuite que vous avez installé grunt localement pour votre projet. Si vous voyez que votre package.jsonn'a pas quelque chose comme "grunt": "0.4.5"ça, alors vous devriez le faire npm install grunt --savedans votre répertoire de projet.

Nick Schaubeck
la source
3

J'ai dû exécuter les commandes suivantes sur ubuntu pour résoudre ce problème (je connais grunt depuis 1 heure):

sudo npm install -g grunt
sudo npm install -g grunt-cli

cd /usr/local/bin
# current symlink points to ../lib/node_modules/grunt/bin/grunt*
sudo rm /usr/local/bin/grunt
sudo ln -s ../lib/node_modules/grunt-cli/bin/grunt* grunt

C'est sale mais c'est la seule solution que j'ai trouvée ... :(

Max
la source
2

Rien de ce qui précède n'a fonctionné pour moi parce que j'avais grunt installé globalement (recommandé dans plusieurs de ces réponses, bizarrement) et que tout gâchait. Voici ce qui a fonctionné:

npm uninstall -g grunt
npm install

Ce n'est que maintenant qu'un grognement local a été installé et utilisable pour moi.

mlncn
la source
0

Étant nouveau dans Grunt et le configurant, j'exécute (peut-être bêtement) mon projet / dossier Grunt à partir de Google Drive afin que je puisse accéder au même code / builds depuis mon ordinateur portable ou mon poste de travail.

Il y a un peu de synchronisation des dossiers nœuds_modules vers Google Drive et il semble y avoir un conflit à un moment donné, et le dossier / nœuds_modules / grunt a été renommé en / nœuds_modules / grunt (1)

Le renommer en supprimant le (1) semblait le réparer pour moi.

LJT
la source
Pourquoi n'utilisez-vous pas GIT?
hmrc87
Je ne voulais pas suivre les modifications / versions et j'essayais de ne pas maintenir deux installations de grunt distinctes, mais le scénario ci-dessus était assez problématique, donc je suis quand même passé à github.
LJT
0

Juste npm installpour installernode_modules

Miku Ghoul
la source
0

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

J'ai utilisé sudo pour exécuter la commande à installer.

sudo npm install -g grunt-cli

Ça a marché pour moi.

user1012513
la source
0

Vous pouvez simplement exécuter cette commande:

npm install grunt --save-dev
Vinod Kumar
la source