Theo giải pháp @anatoliy, Trên MacOS XI đã tìm thấy các đường dẫn tra cứu đang làm
require('module')._resolveLookupPaths('myModule')
vì vậy tôi nhận được các đường dẫn tra cứu đã giải quyết
[ 'myModule',
[ '/Users/admin/.node_modules',
'/Users/admin/.node_libraries',
'/usr/local/lib/node' ] ]
trong khi
require('module')._resolveFilename('myModule')
sẽ không giải quyết được mô-đun mà tôi đang tìm kiếm, trên thực tế, điều điên rồ là _load
sẽ không giải quyết được mô-đun:
> 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)
trong khi ý require
chí:
> require('myModule')
nhưng tôi không có mô-đun này trong
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/
vậy module này ở đâu ???
Đầu tiên, tôi phải làm $ sudo /usr/libexec/locate.updatedb
Sau đó sau một vài ly cà phê, tôi đã làm locate myModule
hoặc tốt hơnlocate myModule/someFile.js
et voilà, nó phát ra rằng nó nằm trong thư mục mẹ của dự án của tôi, tức là bên ngoài thư mục gốc dự án của tôi:
$pwd
/Users/admin/Projects/Node/myProject
$ ls ../../node_modules/myModule/
vì vậy bạn không thể tránh rm -rf ../../node_modules/myModule/
và tươi npm install
.
Tôi có thể tranh luận rằng không ai hướng dẫn npm
quét máy tính của tôi để tìm kiếm mô-đun ở nơi khác ngoài thư mục gốc dự án của tôi, nơi nó được cho là chạy hoặc trong đường dẫn tìm kiếm mô-đun mặc định.