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