web-dev-qa-db-fra.com

Vous ne trouvez pas async après l'installation

Aujourd'hui, je reçois une chose étrange qu'après avoir installé async dans Global, nodejs signale qu'il ne peut pas trouver le module.

  1. installer async

    npm install -g async

  2. assurez-vous que async existe

    npm list -g async

obtenir cette sortie:

/usr/local/lib 
 ├── [email protected]
└─┬ [email protected]
 └─┬ [email protected]
 └─┬ [email protected]
 └── [email protected] 

3.essayer de l'utiliser.

 Je crée un simple fichier js qui ne contient qu'une déclaration: 
 Var async = require ('async'); 
 Puis exécute le fichier via noeud, je reçois une exception: 
 Erreur: Impossible de trouver le module 'asynchrone' 
 à Function.Module._resolveFilename (module.js: 338: 15) 
 à Function.Module._load (module.js: 280: 25) 
 à Module.require (module.js: 364: 17) 
 at require (module.js: 380: 17) 
 à l'objet. (/lxzhu/nodejs/asynctest/test.js:1:73)
 à Module._compile (module.js: 456: 26) 
 à Object.Module._extensions..js (module.js: 474: 10) 
 sur Module.load (module.js: 356: 32) 
 à Function.Module._load (module.js: 312: 12) 
 à Function.Module.runMain (module.js: 497: 10) 
18
Liangxiong.ZHU

C'est parce que vous installez async globalement.

npm install async va créer un répertoire appelé node_modules, et l'algorithme de recherche require le trouvera là.

21
bendecoste

L'installation globale d'un NPM ne signifie pas toujours que le module peut être partagé pour plusieurs projets. C'est une idée fausse assez populaire. Vous pouvez lire cet article de blog sur nodejs.org pour plus d'informations, mais en général, les modules globaux sont utilisés pour les outils de ligne de commande et autres utilitaires système, mais pas pour les modules utilisés dans votre code. 

Donc, idéalement, vous auriez besoin des modules localement pour chacun de vos projets. 

6
Munim

async installé globalement. Pour cela, nous devons créer et installer des modules async. 

npm install async --save  

cette ligne de commande ajoute des fichiers dans le dossier node_modules.

3
Damini Suthar

Pour utiliser des modules installés globalement dans plusieurs projets, utilisez la commande npm link.

npm link créera un lien symbolique du package installé globalement dans votre répertoire apps node_modules

Edit: depuis que npm @ 5 effectuant une installation locale, npm install foo sera lié à partir d’un cache système similaire à la stratégie de fil. Donc, utilisez npm install pour local même si le même module est installé globalement

1
Fred Stark

si ne trouve aucun module comme
Impossible de trouver le module 'sql', impossible de trouver le module 'nodemailer'.

0
Navin Kumar

Enfin, je reçois la réponse de http://nodejs.org/api/modules.html.

Après l'installation globale, je dois placer son sous-répertoire dans NODE_PATH pour qu'il apparaisse dans le chemin de recherche du nœud.

En outre, comme le dit le document, il est suggéré de stocker le module localement et NODE_PATH est destiné à la compatibilité des versions et ne devrait plus être utilisé.

0
Liangxiong.ZHU