web-dev-qa-db-ja.com

エラー:モジュール 'nan'が見つかりません

私はネイティブの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
9
Rax Wunter

理想的ではありませんが、最初にnanをインストールすると機能します。

$ npm install nan
5
David Momenso

nanをグローバルにインストールします。

_npm i -g nan_

その後、

export NODE_PATH=$(npm root -g)

4
Emre Tapcı

私の場合、それはpackage-lockファイルにいくつかの依存関係がないためでした。削除して$ npm installを再度実行することで解決しました。

残念ながら、この問題が発生しました。「npm」が含まれているものはすべて、スローされたエラーですぐに返されました。

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

ノードと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が完全に満たされるまでこれらの手順を続けます。

  • 私が言ったように、この最後の部分は、醸造の応答から直接指示に従うだけでした。

  • このウォークスルーが、誰かが私が少し早く抱えていた問題を回避するのに役立つことを願っています。そして、この回答でリンクした解決策を手伝ってくれたコミュニティに感謝します。

  • こぼれたコードを叫ぶのではなく、コミュニティをサポートし続けてください。

0
Carl

私はパーティーに少し遅れています。しかし、私にとってうまくいったのは、node_modulesを使用してすべてのrm -rf node_modules && npm installを再インストールすることでした。

0
Maielo