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