Impossible de trouver le module 'findup-sync' en essayant d'exécuter grunt

j'ai du mal à lancer grunt-cli après l'avoir installé. Je run

npm install -g grunt-cli

puis lancer des erreurs 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

voici ce que j'ai installé:

tmartin@timcomp:~$ npm list -g
/home/tmartin/lib
└─┬ grunt-cli@0.1.6
  ├─┬ findup-sync@0.1.2
  │ ├─┬ glob@3.1.21
  │ │ ├── graceful-fs@1.2.0
  │ │ ├── inherits@1.0.0
  │ │ └─┬ minimatch@0.2.11
  │ │   ├── lru-cache@2.2.2
  │ │   └── sigmund@1.0.0
  │ └── lodash@1.0.1
  └─┬ nopt@1.0.10
    └── abbrev@1.0.4
22
demandé sur Akasha 2013-03-16 04:08:00

4 réponses

j'ai dû installer et relier findup-sync et quelques autres paquets npm pour que ces problèmes de dépendances disparaissent. J'ai pensé que la npm était censée les gérer pour nous, mais l'installation des dépendances a fait disparaître les problèmes.

npm install findup-sync -g

npm link findup-sync

9
répondu Matthew Fotzler 2014-01-14 06:06:52

j'ai fait tourner le mien en réinstallant grunt-cli globalement et dans mon repo.

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 ...

5
répondu Xavier Haniquaut 2014-10-20 07:34:29

c'est parce que npm ne définit pas la bonne permission pour le sous-répertoire node_modules dans /usr/lib/node_modules/grunt-cli. Dans mon cas, j'ai eu:

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'ai eu la même erreur (je ne trouve pas le module 'findup-sync') à cause d'une permission refusée pour lire ce répertoire.

la solution est de fixer la permission avec chmod: chmod a+RX node_modules.

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

c'est peut-être un bug de distribution (J'utilise Archlinux).

3
répondu Syn 2014-02-16 16:28:40

cela peut sembler simple, mais si quelqu'un d'autre n'est pas sûr s'il y a un problème de permissions, essayez sudo grunt alors, allez de là.

2
répondu inostia 2015-06-23 22:39:21