web-dev-qa-db-fra.com

Paquet de nœuds (Grunt) installé mais non disponible

J'essaie de construire une bibliothèque github jquery-ui en utilisant grunt, mais après avoir exécuté npm install, je ne peux toujours pas exécuter la commande conformément au fichier readme . Cela donne juste No command 'grunt' found:

james@ubuntu:~/Documents/projects/ad2/lib/jquery-ui$ grunt build
No command 'grunt' found, did you mean:
 Command 'grun' from package 'grun' (universe)
grunt: command not found
james@ubuntu:~/Documents/projects/ad2/lib/jquery-ui$ npm ls
[email protected] /home/james/Documents/projects/ad2/lib/jquery-ui
├─┬ [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├─┬ [email protected] 
│ │ ├── [email protected] 
│ │ ├── [email protected] 
│ │ └── [email protected] 
│ ├── [email protected] 
│ ├─┬ [email protected] 
│ │ └─┬ [email protected] 
│ │   └── [email protected] 
│ ├─┬ [email protected] 
│ │ ├── [email protected] 
│ │ └── [email protected] 
│ ├── [email protected] 
│ ├─┬ [email protected] 
│ │ ├── [email protected] 
│ │ └─┬ [email protected] 
│ │   └── [email protected] 
│ ├─┬ [email protected] 
│ │ ├── [email protected] 
│ │ └─┬ [email protected] 
│ │   ├── [email protected] 
│ │   ├── [email protected] 
│ │   └── [email protected] 
│ ├─┬ [email protected] 
│ │ └── [email protected] 
│ ├─┬ [email protected] 
│ │ ├── [email protected] 
│ │ └─┬ [email protected] 
│ │   ├── [email protected] 
│ │   ├─┬ [email protected] 
│ │   │ └── [email protected] 
│ │   └── [email protected] 
│ ├── [email protected] 
│ ├─┬ [email protected] 
│ │ └── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ └── [email protected] 
├── [email protected] 
├─┬ [email protected] 
│ ├── [email protected] 
│ └── [email protected] 
├── [email protected] 
├── [email protected] 
├─┬ [email protected] 
│ └── [email protected] 
└─┬ [email protected] 
  └── [email protected] 

Je suis confus, qu'est-ce qui me manque, s'il vous plaît?

181
AJP

Les outils de ligne de commande ne sont pas inclus dans la dernière version de Grunt (0.4 au moment de la rédaction), mais vous devez les installer séparément.

C'est une bonne idée car cela signifie que vous pouvez avoir différentes versions de Grunt s'exécutant sur différents projets, tout en utilisant la commande Nice concise grunt pour les exécuter.

Commencez donc par installer les outils grunt cli globalement:

npm install -g grunt-cli

(ou éventuellement Sudo npm install -g grunt-cli).

Vous pouvez établir que cela fonctionne en tapant grunt --version

Vous pouvez maintenant installer la version actuelle de Grunt Local dans votre projet. Donc, de l'emplacement de votre projet ...

npm install grunt --save-dev

Le commutateur save-dev n'est pas strictement nécessaire, mais est une bonne idée car il marquera grunt dans sa section package.json devDependencies en tant que module de développement uniquement.

400
Tom P

Ajoutez /usr/local/share/npm/bin/ à votre $PATH

26
Sam Figueroa

Si vous avez installé le paquet Grunt en exécutant npm install -g grunt et que le code No command 'grunt' found ou grunt: command not found est toujours affiché, une méthode rapide et efficace pour résoudre ce problème consiste à relier manuellement les fichiers binaires de noeud à votre $ PATH.

Sous MacOSX/Linux, vous pouvez ajouter cette ligne à votre fichier ~/.bash_profile ou ~/.bashrc.

PATH=$PATH:/usr/local/Cellar/node/HEAD/bin # Add NPM binaries

Vous devriez probablement remplacer /usr/local/Cellar/node/HEAD/bin par le chemin où vos fichiers binaires de noeud pourraient être trouvés.

Si ceci est quick and dirty pour moi, c'est parce que tout devrait fonctionner sans le faire, mais pour une raison inconnue, un lien semble rompu. Comme personne sur IRC ne pouvait me dire pourquoi cela s’était passé, j’ai trouvé mon propre moyen de le faire fonctionner.

PS: Cela devrait vous aider à faire des grognements, cette réponse n'est pas liée à jquery-ui.} _

Mise à jour 02/2013: Vous devriez jeter un coup d'œil à la réponse de @ tom-p qui explique mieux ce qui se passe. Tom nous donne la vraie solution au lieu de pirater votre fichier bashrc: fonctionne, mais vous devriez essayer d’installer grunt-cli d’abord.

23
rayfranco

Dans mon cas, j'ai besoin de modifier le fichier/usr/local/bin/grunt à la ligne 1 (ne le faites pas):

 #!/usr/bin/env node //remove this line
 #!/usr/bin/env nodejs // and put this line to run with nodejs

Édité:

Pour éviter les problèmes, j'ai créé un lien avec le nom de "noeud" car de nombreux autres programmes utilisent encore la commande "noeud".

 Sudo ln -s /usr/bin/nodejs /usr/sbin/node
12
Edgard Leal

Sur Win7, je devais ajouter manuellement le chemin d'accès au dossier npm (qui contient le fichier «grunt» insaisissable) à la variable d'environnement Windows PATH.
Dans mon cas, c'était C:\Users\mhaagsma\AppData\Roaming\npm

10
Marvin

Il y a une autre façon de faire grogner sur Windows, sans rien ajouter globalement. C'est un cas où vous ne devez rien faire avec% PATH%

si vous avez installé grunt et grunt-cli (sans le commutateur -g) . Soit par:

npm install grunt-cli
npm install [email protected]

Ou en ayant cela dans votre fichier packages.json comme ceci:

"devDependencies": {
    "grunt-cli": "^1.2.0",
    "grunt": "^0.4.5",

Vous pouvez appeler grunt depuis votre installation locale par:

node node_modules\grunt-cli\bin\grunt --version

C'est une solution pour ceux qui, pour certaines raisons, ne veulent pas ou ne peuvent pas jouer avec PATH, ou ont quelque chose d'autre qui le dérange tout le temps, par exemple sur un agent de construction.

Edit: Ajout de versions car le grunt-cli fonctionne avec grunt> 0.3

10
tomajar

La bonne façon d’installer grunt consiste à exécuter cette commande:

npm install grunt -g

(Ajoutez "Sudo" à la commande ci-dessus si vous recevez un message d'erreur EACCESS)

-g fera que npm installe le paquet globalement, vous pourrez donc l'utiliser quand vous le souhaitez sur votre ordinateur actuel.

2

Sous Windows, une partie du mystère semble être où npm installe le fichier Grunt.cmd. Sur mon ordinateur Linux, je devais exécuter Sudo npm install -g grunt-cli. Sur mon ordinateur portable de travail Windows 8, Grunt était placé dans le répertoire '.npm-global':% USER_HOME% \. Npm-global et moi. dû ajouter que sur le chemin.

Donc, sous Windows, mes étapes étaient les suivantes:

  • npm installer -g grunt-cli 

  • comprendre où se trouvait le diable grunt.cmd (je suppose que pour certains, il se trouve dans% USER_HOME%\App_Data\Roaming)

  • Ajout de l'emplacement à la variable d'environnement Path. A ouvert une nouvelle invite cmd et la commande grunt a fonctionné correctement.

0
MattC

Parfois, vous devez npm install package_name -g pour que cela fonctionne. 

0
lowerkey

Une autre solution consiste à supprimer le bundle Ubuntu dans mon cas, j’ai utilisé:

Sudo apt-get remove Ruby-bundler 

Cela a fonctionné pour moi.

0
Israel Morales

Bonjour j'ai eu ce problème sur mac, et ce que j'ai fait était

installé globalement et préfixe avec chemin global

Sudo npm install grunt -g --prefix=/usr/local

maintenant $ which grunt

devrait sortir /usr/local/bin/grunt

À votre santé

0
Theva