Selon la solution @anatoliy, sur MacOS XI ont trouvé les chemins de recherche faisant
require('module')._resolveLookupPaths('myModule')
donc j'obtiens les chemins de recherche résolus
[ 'myModule',
[ '/Users/admin/.node_modules',
'/Users/admin/.node_libraries',
'/usr/local/lib/node' ] ]
tandis que le
require('module')._resolveFilename('myModule')
ne résoudra pas le module que je cherchais de toute façon, en fait le plus fou est que le _load
ne résoudra pas le module:
> require('module')._load('myModule')
Error: Cannot find module 'myModule'
at Function.Module._resolveFilename (module.js:440:15)
at Function.Module._load (module.js:388:25)
at repl:1:19
at sigintHandlersWrap (vm.js:32:31)
at sigintHandlersWrap (vm.js:96:12)
at ContextifyScript.Script.runInContext (vm.js:31:12)
at REPLServer.defaultEval (repl.js:308:29)
at bound (domain.js:280:14)
at REPLServer.runBound [as eval] (domain.js:293:12)
at REPLServer.<anonymous> (repl.js:489:10)
tandis que le require
testament:
> require('myModule')
mais je n'ai pas ce module dans
myProject/node_modules/
myProject/node_modules/@scope/
/usr/local/lib/node_modules/
/usr/local/lib/node_modules/@scope
/usr/local/lib/node_modules/npm/node_modules/
/usr/local/lib/node_modules/npm/node_modules/@scope
$HOME/.npm/
$HOME/.npm/@scope/
alors où est ce module ???
J'ai d'abord dû faire un $ sudo /usr/libexec/locate.updatedb
Puis après un café, j'ai fait locate myModule
ou mieuxlocate myModule/someFile.js
et voilà, il ressort que c'était dans un dossier parent de mon projet c'est à dire en dehors du dossier racine de mon projet:
$pwd
/Users/admin/Projects/Node/myProject
$ ls ../../node_modules/myModule/
donc vous ne pouvez pas éviter rm -rf ../../node_modules/myModule/
et un frais npm install
.
Je peux affirmer que personne n'a demandé npm
de scanner mon ordinateur à la recherche de modules ailleurs que dans le dossier racine de mon projet où il était censé s'exécuter ou dans le chemin de recherche des modules par défaut.