错误:找不到模块' nan'

时间:2015-12-25 16:54:19

标签: node.js npm node-gyp node.js-addon node.js-nan

我正在使用本机Node.js插件并关注nan docs

我把nan包括在binding.gyp中: "include_dirs" : [ "<!(node -e \"require('nan')\")" ]

此外,nan是npm依赖项。

但是当我在另一个节点模块中安装软件包时,node-gyp失败并出现错误

> nnb@1.0.2 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

6 个答案:

答案 0 :(得分:36)

就我而言,这是因为package-lock文件中缺少某些依赖项。我通过删除它并再次运行$ npm install来解决了这个问题。

答案 1 :(得分:5)

我在使用 node.js 版本 v12.18.3 和 npm 6.14.6 时遇到了这个确切的错误。

升级到 node.js 版本 v14.15.4(包括 npm 6.14.10)解决了这个问题。 npm install 升级后成功运行。

无需以任何方式安装 nan

答案 2 :(得分:3)

不理想,但如果先安装nan,它就会起作用。

$ npm install nan

答案 3 :(得分:1)

全局安装nan

npm i -g nan

然后

export NODE_PATH=$(npm root -g)

答案 4 :(得分:0)

不幸的是我遇到了这个问题,任何事情都发生在&#39; npm&#39;在它被立即返回时抛出错误。

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

我不得不删除我的节点&amp; npm文件

卸载并重新安装我遵循的指令(stackoverflow):

How do I completely uninstall Node.js, and reinstall from beginning (Mac OS X)

然后我在每个问题上一路跟踪兔子踪迹!

在第一次出现摩擦迹象时,不要立即跳转到SO(stackoverflow),命令窗口(cli)将会出现奇怪的情况&#34;给你一切正确答案(但是我确实遇到了大约2个障碍,我提到了SO,主要是为了安全起见。)

- 我遇到了一些摩擦,一个python框架文件位于一个使自制软件发出警告resolve with的地方。

- 和一个小桶链接警告resolved with my own write up here

  • 然后当我需要运行时:brew install node

- 我还有另外一个brew link issue,很容易,因为我上面写的关于小桶链接警告只需要再次走过,所以我想。 然后我收到一个错误,说我不能brew link --overwrite node该文件(如果我记得特权或其他东西,那就是resolved here)。

最后

  • 此时一切运作良好。 - 记住!中间有简单的步骤,我实际上只是遵循cli中的命令提示,例如:

  • brew想让我通过给定路径删除文件:

- open finder&gt; [在MacBook的顶部&#34;监视工具栏&#34;]转到&gt;转到文件夹...&gt;复制并粘贴brew在cli窗口中提供的路径&gt;它会找到导演/文件然后删除相应的目录/文件

- 继续执行这些步骤,直到完全满足brew update

  • 正如我所说,最后一部分只是简单地跟随酿造反应的方向。

  • 我希望这次演练可以帮助有人绕过我加快的问题,并感谢那些花时间帮助我解决这个问题的社区。

  • 不要为溢出的代码而哭泣,继续支持社区。

答案 5 :(得分:0)

我参加聚会有点晚了。但是对我有用的是使用node_modules

重新安装所有rm -rf node_modules && npm install