@anatoliy ソリューションによると、MacOS XI ではルックアップ パスが実行されていることがわかりました。
require('module')._resolveLookupPaths('myModule')
だから私は解決されたルックアップパスを取得します
[ 'myModule',
[ '/Users/admin/.node_modules',
'/Users/admin/.node_libraries',
'/usr/local/lib/node' ] ]
一方、
require('module')._resolveFilename('myModule')
とにかく探していたモジュールを解決しません。実際、クレイジーなことは_load
、モジュールが解決されないことです:
> 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)
一方、require
意志:
> require('myModule')
しかし、私はこのモジュールを持っていません
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/
このモジュールはどこですか?
最初に私はやらなければならなかった$ sudo /usr/libexec/locate.updatedb
それからコーヒーを飲んだ後、私はやったlocate myModule
かそれ以上locate myModule/someFile.js
ほら、それは私のプロジェクトの親フォルダー、つまりプロジェクトのルートフォルダーの外にあることがわかりました。
$pwd
/Users/admin/Projects/Node/myProject
$ ls ../../node_modules/myModule/
だからあなたは避けられないrm -rf ../../node_modules/myModule/
と 新鮮なnpm install
.
npm
私のコンピューターをスキャンして、実行するはずだったプロジェクトのルートフォルダー以外の場所、またはデフォルトのモジュール検索パスでモジュールを検索するように指示された人は誰もいなかったと主張できます。