2011-12-18 1 views
2

Si j'installe Benchmark.js localement avec npm install benchmark que tout fonctionne bien:Module Benchmark.js ne peut pas trouver globalement dans NodeJS

require("benchmark") > Object 

Mais quand je tente d'installer Benchmark à l'échelle mondiale avec -g drapeau npm install benchmark -g, NodeJS ne peut pas trouver le module (supprimer d'abord le banc d'essai installé localement):

require("benchmark") > Error: Cannot find module 'benchmark' 

J'ai essayé sous Windows et Linux. Les mêmes résultats Travail local, globalement pas. Quelqu'un peut-il m'aider POURQUOI?

Le module mongodb fonctionne globalement.

+0

Est-ce un problème global? Happens pour tous les modules? En outre, avez-vous quelque chose comme NVM ou N installé? (gestionnaires de version de noeud) – alessioalex

+0

cela se produit seulement avec le cas-test. d'autres paquets fonctionnent bien. Je n'ai pas NVM installé. As-tu essayé ça? l'erreur se produit-elle pour vous? –

Répondre

7

Vous pouvez le faire en utilisant npm link. Par exemple - exprimer - npm link express

npm install -g express 
cd <your-application-development-path> 
npm link express 

symbolique sera créé reliant express

[email protected]:~/Programming/web/foo$ ls -lrt node_modules 
total 12 
drwxr-xr-x 2 xxxx xxxx 4096 2011-12-21 17:07 .bin/ 
lrwxrwxrwx 1 xxxx xxxx 38 2011-12-21 17:07 express -> ../../../node/lib/node_modules/express/ 
+0

+1 - Je ne connaissais pas 'npm link'! Agréable! – swatkins

+0

Premier zéro! Merci pour votre réponse, mais d'abord: npm lien ne fonctionne pas sur Windows, d'autre part, ce n'est pas la réponse pourquoi benchmarkjs ne fonctionnent pas globalement, comme d'autres modules le font. Avez-vous essayé d'utiliser le benchmark globalement pas localement, et cela a-t-il fonctionné? Merci encore! –

+0

Hi Omnosis, Testé 'npm link benchmark' et fait' benchmark = require ('benchmark'); 'et le script a bien démarré. Bien que cela a été fait sur Ubuntu Linux. Pas de fenêtres. Un 'ls -lrt' de node_modules montre ' benchmark -> ../../../ node/lib/node_modules/benchmark/' Avez-vous un script, je peux exécuter et tester sous Linux? Pas surpris 'npm link' ne fonctionne pas sous Windows car NTFS/FAT ne supporte pas les liens symboliques. –

0

Je pense qu'il ya une autre façon de le faire fonctionner lorsque vous installez des modules à l'échelle mondiale. Essayez de définir la variable d'environnement export NODE_PATH=/usr/local/lib/node_modules

Ensuite, votre "require" devrait fonctionner correctement.