3 votes

Existe-t-il un moyen de savoir où require/resolve essaie de trouver des modules dans Node.js ?

Je travaille sur un système de plugins pour une bibliothèque Node.js et j'ai un peu de mal à comprendre où les fonctions "require" et "require.resolve" recherchent les paquets lors de l'exécution de certains tests. Je continue à obtenir des erreurs telles que :

Cannot find module 'plugin-name' from "index.jS"

Je sais qu'en général, Node.js recherche les répertoires "node_modules" tout au long de la hiérarchie, mais comme je fais un peu de mocking sur mes tests, les choses ne sont pas aussi simples, donc il serait vraiment utile si je pouvais imprimer des journaux ou des informations de débogage des chemins dans lesquels Node.js essaie de trouver des paquets.

Des idées ?

Merci d'avance.

2voto

Mark Meyer Points 31911

Je pense module.paths sera probablement le plus utile. En exécutant localement, j'obtiens, ce que je pense être un tableau complet de chemins de recherche, qui comprend les éléments suivants node_modules tout au long de l'arborescence ainsi que ~/.node_libraries , ~/.node_modules y '/usr/local/lib/node'

La documentation dit simplement :

module.paths
Les chemins de recherche du module

Il y a une description assez bonne sur l'algorithme ici : https://nodejs.org/api/modules.html#modules_all_together

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