47 votes

Module Express introuvable lors de l'installation avec NPM

Lorsque j'essaie d'exécuter l'app.js fichier créé par l'express, j'obtiens l'erreur suivante:

$ node app.js

node.js:134
        throw e; // process.nextTick error, or 'error' event on first tick
        ^
Error: Cannot find module 'express'
    at Function._resolveFilename (module.js:320:11)

Quand je tape dans "l'express --version" je reçois une instruction de retour de 2.3.3. J'ai utilisé npm pour installer express. J'ai eu à effectuer manuellement mnp à l'aide de ces instructions:

git clone http://github.com/isaacs/npm.git
cd npm
sudo make install

L'erreur est - Error: Cannot find module 'express'.

Ai-je besoin de faire quelque chose après l'installation de mnp et express, afin de faire exprimer voir les modules créés par npm?

Mon nœud est la version: 0.4.6 Mon express est la version: 2.3.3 Mon mnp est la version: 1.0.6

Express est installé à l'échelle mondiale. J'ai utilisé l'option-g drapeau de l'installer.

Edit: Quand j'essaie de "nœud -e besoin.des chemins", j'obtiens:

[ '/home/utilisateur/.node_modules', '/home/utilisateur/.node_libraries', '/usr/local/lib/node' ]

Ainsi, le nœud n'est pas détecter le mécanisme national de prévention de l'installation. Comment puis-je obtenir nœud pour détecter le mécanisme national de prévention de l'installation?

71voto

just_a_dude Points 1864
  • Installez Express

    npm install -g express

  • Créer une nouvelle application

    express your_app

  • cd dans le répertoire app

    cd your_app

  • utiliser le lien npm pour résoudre les modules

    npm link express

27voto

isaacs Points 6050

Utilisez les installations locales pour require () et les installations globales pour les applications en ligne de commande.

Si vous avez besoin des deux, utilisez la commande npm link .

20voto

ezraspectre Points 1083

Sur Ubuntu 12.04, vous devez ajouter les export NODE_PATH=/usr/local/lib/node_modules à votre /.bashrc pour utiliser des modules installés globalement.

15voto

Rob Raisch Points 5835

Il semble que, bien que la ngp a été mis à jour pour installer les modules globaux dans le répertoire /usr/local/lib/node_modules, Nœud propre besoin.les chemins ne sont pas encore compte de ce changement.

Il y a deux solutions raisonnables:

1. Ajoutez le code suivant en haut de votre demande:

require.paths.push('/usr/local/lib/node_modules');

Pro: non-invasive, facile à ajouter

Con: il faut de la discipline, les futures versions de nœud va restreindre l'accès à l'exiger.les chemins de

2. En tant que root, exécutez:

ln -s /usr/local/lib/node_modules /usr/local/lib/node

Pro: raisonnablement non-invasive

Inconvénients: nécessite de la racine, modifie linux fs, pourrait ne pas survivre à jour du système d'

8voto

Gorm Casper Points 135

J'ai eu le même problème. Cela a fonctionné pour moi si:

On dirait que npm (maintenant?) Installe les modules de noeuds sur /usr/local/lib/node_modules/ et pas /usr/local/lib/node/

Ce que j'ai fait était simplement de tout copier de node_modules à node: sudo cp -r /usr/local/lib/node_modules/* usr/local/lib/node/ et maintenant, cela semble fonctionner pour moi.

J'espère que cela vous aide :-)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X