Menurut solusi @anatoliy, Di MacOS XI telah menemukan jalur pencarian yang dilakukan
require('module')._resolveLookupPaths('myModule')
jadi saya mendapatkan jalur pencarian terselesaikan
[ 'myModule',
[ '/Users/admin/.node_modules',
'/Users/admin/.node_libraries',
'/usr/local/lib/node' ] ]
sedangkan
require('module')._resolveFilename('myModule')
tidak akan menyelesaikan modul yang saya cari, pada kenyataannya yang gila adalah bahwa _loadmodul tidak akan menyelesaikan:
> 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)
sedangkan requirekeinginan:
> require('myModule')
tapi saya tidak memiliki modul ini
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/
jadi dimana modul ini ???
Pertama saya harus melakukan a. $ sudo /usr/libexec/locate.updatedb
Kemudian setelah minum kopi saya lakukan locate myModuleatau lebih baiklocate myModule/someFile.js
et voilà, ternyata itu ada di folder induk proyek saya yaitu di luar folder root proyek saya:
$pwd
/Users/admin/Projects/Node/myProject
$ ls ../../node_modules/myModule/
sehingga Anda tidak dapat menghindari rm -rf ../../node_modules/myModule/dan segar npm install.
Saya dapat berargumen bahwa tidak ada yang menginstruksikan npmuntuk memindai komputer saya untuk mencari modul di tempat lain selain folder root proyek saya yang seharusnya dijalankan atau di jalur pencarian modul default.