web-dev-qa-db-fra.com

Impossible de trouver le module 'findup-sync' lors de l'exécution de grunt

J'ai du mal à exécuter grunt-cli après l'avoir installé. je cours

npm install -g grunt-cli

puis courir des erreurs de grunt avec

    node.js:63
    throw e;
    ^
Error: Cannot find module 'findup-sync'
    at loadModule (node.js:275:15)
    at require (node.js:411:14)
    at Object.<anonymous> (/home/tmartin/bin/grunt:9:14)
    at Module._compile (node.js:462:23)
    at Module._loadScriptSync (node.js:469:10)
    at Module.loadSync (node.js:338:12)
    at Object.runMain (node.js:522:24)
    at Array.<anonymous> (node.js:756:12)
    at EventEmitter._tickCallback (node.js:55:22)
    at node.js:773:9

C'est ce que j'ai installé:

tmartin@timcomp:~$ npm list -g
/home/tmartin/lib
└─┬ [email protected]
  ├─┬ [email protected]
  │ ├─┬ [email protected]
  │ │ ├── [email protected]
  │ │ ├── [email protected]
  │ │ └─┬ [email protected]
  │ │   ├── [email protected]
  │ │   └── [email protected]
  │ └── [email protected]
  └─┬ [email protected]
    └── [email protected]
23
Tim Martin

J'ai dû installer et lier findup-sync et quelques autres packages npm pour résoudre ces problèmes de dépendance. Je pensais que npm était censé les gérer pour nous, mais installer les dépendances manuellement a résolu les problèmes.

npm install findup-sync -g

npm link findup-sync

9
Matthew Fotzler

Le mien a été relancé en réinstallant grunt-cli globalement et dans mon dépôt.

npm install -g grunt-cli

cd myrepo

npm install grunt-cli

Je pense que l'installation de Yosemite a cassé certaines choses dans mes fichiers ...

7
Xavier Haniquaut

Ceci est dû au fait que npm ne définit pas les droits d'accès au sous-répertoire node_modules dans /usr/lib/node_modules/grunt-cli..In. Dans mon cas, j'avais:

drwxr-x--- 6 nobody root 4096 16 févr. 17:08 node_modules

Lors de l'exécution de grunt en tant qu'utilisateur non root, j'avais la même erreur (module 'findup-sync' introuvable) en raison d'une autorisation refusée de lire ce répertoire.

La solution consiste à réparer les autorisations avec chmod: chmod a + rx node_modules.

Mais en fait, tous les annuaires étaient impliqués. Le meilleur moyen était de faire:

find /usr/lib/node_modules/grunt-cli -type d -exec chmod a+rx {} \;

C'est peut-être un problème de distribution (j'utilise Archlinux).

3
Syn

Cela peut sembler simple, mais si quelqu'un d'autre ne sait pas s'il y a un problème d'autorisations, essayez d'exécuter Sudo grunt, puis procédez à partir de là.

2
inostia

Cela peut aussi sembler évident, mais dans mon cas, j’avais configuré mon chemin npm à partir de mon répertoire personnel (sur un Chromebook) et j’avais besoin d’ajouter .node_modules à mon .profile.
PATH=~./node_modules:$PATH
Puis lancez:
source ~/.profile

0
rwreed