我正在使用本机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
答案 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)
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):
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
。
正如我所说,最后一部分只是简单地跟随酿造反应的方向。
我希望这次演练可以帮助有人绕过我加快的问题,并感谢那些花时间帮助我解决这个问题的社区。 p>
不要为溢出的代码而哭泣,继续支持社区。 p>
答案 5 :(得分:0)
我参加聚会有点晚了。但是对我有用的是使用node_modules
rm -rf node_modules && npm install