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.
installer async
npm install -g async
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)
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à.
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.
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.
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
si ne trouve aucun module comme
Impossible de trouver le module 'sql', impossible de trouver le module 'nodemailer'.
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é.