私はネイティブのNode.jsアドオンに取り組んでおり、次のことを行っています nan docs
Nanをbinding.gypに次のように含めました:"include_dirs" : [ "<!(node -e \"require('nan')\")" ]
また、nanはnpmの依存関係にあります。
しかし、別のノードモジュールnode-gyp内にパッケージをインストールすると、エラーで失敗します
> [email protected] install /Users/Shopgate/sandbox/stress/node_modules/nnb
> node-gyp rebuild
module.js:338
throw err;
^
Error: Cannot find module 'nan'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at [eval]:1:1
at Object.exports.runInThisContext (vm.js:74:17)
at Object.<anonymous> ([eval]-wrapper:6:22)
at Module._compile (module.js:460:26)
at evalScript (node.js:431:25)
at startup (node.js:90:7)
gyp: Call to 'node -e "require('nan')"' returned exit status 1. while trying to load binding.gyp
理想的ではありませんが、最初にnanをインストールすると機能します。
$ npm install nan
nan
をグローバルにインストールします。
_npm i -g nan
_
その後、
export NODE_PATH=$(npm root -g)
私の場合、それはpackage-lock
ファイルにいくつかの依存関係がないためでした。削除して$ npm install
を再度実行することで解決しました。
module.js:471
throw err;
^
Error: Cannot find module 'number-is-nan'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/index.js:2:19)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
cd: no such file or directory: /npm
私が従ったアンインストールと再インストールの手順はここにありました(stackoverflow):
Node.jsを完全にアンインストールし、最初から再インストールするにはどうすればよいですか(Mac OS X)
それから私はすべての問題を通してずっとウサギの道をたどりました!
摩擦の最初の兆候ですぐにSO(stackoverflow)にジャンプしないでください、コマンドウィンドウ(cli)は「奇妙なことに」すべてに正しい答えを与えます(しかし私は約ヒットしました私が言及した2つのハードルSO、主に安全のために)。
-pythonフレームワークファイルが自作に警告をスローさせる場所にあることで摩擦に遭遇しました 解決 。
-そして樽リンクの警告 ここに私自身の書き込みで解決されました 。
brew install node
-別のbrew link issue
がありましたが、これは簡単です。上記の樽リンク警告の記述をもう一度確認する必要があるので、考えました。次に、そのファイルをbrew link --overwrite node
できないというエラーが表示されました(特権などを思い出すと、それでも ここで解決 )。
この時点で、すべてがうまく機能していました。 -覚えておいてください!その間に、次のような単純な手順がありました。その間に、文字通りcliのコマンドプロンプトに従いました。
指定されたパスを介してファイルを削除することを希望するbrew:
-Finderを開く> [MacBookの「モニターツールバー」の上部]移動>フォルダに移動...> brewによって提供されたパスをコピーしてCLIウィンドウに貼り付ける>そのdirectorを見つける次に、適切なディレクトリ/ファイルを削除します
--brew update
が完全に満たされるまでこれらの手順を続けます。
私が言ったように、この最後の部分は、醸造の応答から直接指示に従うだけでした。
このウォークスルーが、誰かが私が少し早く抱えていた問題を回避するのに役立つことを願っています。そして、この回答でリンクした解決策を手伝ってくれたコミュニティに感謝します。
こぼれたコードを叫ぶのではなく、コミュニティをサポートし続けてください。
私はパーティーに少し遅れています。しかし、私にとってうまくいったのは、node_modules
を使用してすべてのrm -rf node_modules && npm install
を再インストールすることでした。