错误:找不到模块'nan'



我正在开发原生Node.js插件和以下nan-docs

我把nan加入了binding.gyp类:"include_dirs" : [ "<!(node -e "require('nan')")" ]

nan也处于npm依赖关系中。

但是当我在另一个节点模块中安装包时,节点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

在我的案例中,这是因为package-lock文件中缺少一些依赖项。我通过删除它并再次运行$ npm install解决了这个问题。

全局安装nan

npm i -g nan

然后,

export NODE_PATH=$(npm root -g)

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

$ npm install nan

我在node.js版本v12.18.3和npm 6.14.6中遇到了这个错误。

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

不需要以任何方式安装nan

不幸的是,我遇到了这个问题,任何包含"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)会"奇怪地"为你提供正确的答案(然而,我确实达到了我提到的SO的大约2个栏,主要是为了安全起见)。

  • 在安装node、npm和&通过Homebrew安装Node.js和npm发出grunt

--我遇到了一些摩擦,因为python框架文件所在的位置让自制程序抛出了警告解决方案。

--我在这里写了一篇关于kegs链接的警告,解决了这个问题。

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

--我有另一个brew link issue,很容易,因为我上面写的关于桶链接警告的内容只需要再次浏览一遍,所以我想。然后我收到一个错误,说我不能brew link --overwrite node那个文件(如果我记得的话,特权或其他什么,在这里解决了)。

最后

  • 就在这一点上,一切都很顺利。--记住!中间有一些简单的步骤,我实际上只是服从cli中的命令提示,例如:

  • brew希望我通过给定的路径删除文件:

--打开finder>[在MacBook"监视器工具栏"顶部]转到>转到文件夹…>复制&在cli window>中粘贴brew提供的路径,它会发现director/file,然后删除相应的目录/file

--继续这些步骤直到完全满足CCD_ 12。

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

  • 我希望这次演练能帮助人们更快地绕过我遇到的问题,并感谢社区花时间帮助我找到解决方案,我在这个答案中联系到了这些解决方案。

  • 不要为泄露的代码哭泣,继续支持社区。

我参加聚会有点晚了。但对我来说有效的是使用rm -rf node_modules && npm install 重新安装所有node_modules

相关内容

  • 没有找到相关文章

最新更新