De acuerdo con la solución @anatoliy, en MacOS X, encontré las rutas de búsqueda haciendo
require('module')._resolveLookupPaths('myModule')
entonces obtengo las rutas de búsqueda resueltas
[ 'myModule',
[ '/Users/admin/.node_modules',
'/Users/admin/.node_libraries',
'/usr/local/lib/node' ] ]
mientras que el
require('module')._resolveFilename('myModule')
no resolverá el módulo que estaba buscando de todos modos, de hecho lo loco es que _loadno resolverá el módulo:
> 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)
mientras que la requirevoluntad:
> require('myModule')
pero no tengo este módulo en
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/
Entonces, ¿dónde está este módulo?
Primero tuve que hacer un $ sudo /usr/libexec/locate.updatedb
Luego después de un café lo hice locate myModuleo mejorlocate myModule/someFile.js
et voilà, resulta que estaba en una carpeta principal de mi proyecto, es decir, fuera de la carpeta raíz de mi proyecto:
$pwd
/Users/admin/Projects/Node/myProject
$ ls ../../node_modules/myModule/
por lo que no se puede evitar rm -rf ../../node_modules/myModule/y un fresco npm install.
Puedo argumentar que nadie npmrecibió instrucciones de escanear mi computadora en busca de módulos en otro lugar que no sea la carpeta raíz del proyecto donde se suponía que debía ejecutarse o en la ruta de búsqueda de módulos predeterminada.