NPM安装node-rdkafka失败,提示node-gyp重建错误。

3

我正在尝试使用npm安装node-rdkafka,但是出现了以下错误:

  • 操作系统:macOS Catalina 10.15.7
  • Node.js版本:10.16.3,也尝试过使用nvm安装8.x、12.x和13.x版本。
/Users/VMac/.nvm/versions/node/v10.16.3/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin/node-gyp: line 5: /usr/local/lib/node_modules/node-gyp/bin/node-gyp.js: No such file or directory
npm WARN kafka-log-parser@1.0.0 No repository field.

npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! node-rdkafka@2.7.0 install: `node-gyp rebuild`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the node-rdkafka@2.7.0 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/VMac/.npm/_logs/2020-09-30T14_35_01_271Z-debug.log

当我尝试使用“npm install -g node-gyp”安装“node-gyp”,并运行“node-gyp rebuild”时,出现以下错误。请注意,保留了HTML标签。
gyp info it worked if it ends with ok
gyp info using node-gyp@7.1.0
gyp info using node@10.16.3 | darwin | x64
gyp info find Python using Python version 3.8.3 found at "/usr/local/anaconda3/bin/python3"
gyp info spawn /usr/local/anaconda3/bin/python3
gyp info spawn args [ '/Users/VMac/.nvm/versions/node/v10.16.3/lib/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/VMac/Documents/VMAC/Code/GIT/kafka-log-simulator/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/VMac/.nvm/versions/node/v10.16.3/lib/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/VMac/Library/Caches/node-gyp/10.16.3/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/Users/VMac/Library/Caches/node-gyp/10.16.3',
gyp info spawn args   '-Dnode_gyp_dir=/Users/VMac/.nvm/versions/node/v10.16.3/lib/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/Users/VMac/Library/Caches/node-gyp/10.16.3/<(target_arch)/node.lib',
gyp info spawn args   '-Dmodule_root_dir=/Users/VMac/Documents/VMAC/Code/GIT/kafka-log-simulator',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.' ]
gyp: binding.gyp not found (cwd: /Users/VMac/Documents/VMAC/Code/GIT/kafka-log-simulator) while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/Users/VMac/.nvm/versions/node/v10.16.3/lib/node_modules/node-gyp/lib/configure.js:351:16)
gyp ERR! stack     at ChildProcess.emit (events.js:198:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
gyp ERR! System Darwin 19.6.0
gyp ERR! command "/Users/VMac/.nvm/versions/node/v10.16.3/bin/node" "/Users/VMac/.nvm/versions/node/v10.16.3/bin/node-gyp" "rebuild"
gyp ERR! cwd /Users/VMac/Documents/VMAC/Code/GIT/kafka-log-simulator
gyp ERR! node -v v10.16.3
gyp ERR! node-gyp -v v7.1.0
gyp ERR! not ok

我也尝试了xcode-select --install但没有成功。 有什么建议可以解决这个问题,成功地使用npm在我的mac上安装node-rdkafka吗?

3个回答

4

在我自己遇到这个问题并尝试了两个答案中提出的解决方案却没有成功后,以下是对我有效的解决方法,而无需卸载node。

简短版:

sudo rm -rf /Library/Developer/CommandLineTools
xcode-select --install
npm install node-rdkafka

在这之后,我能够顺利安装node-rdkafka

我需要删除CommandLineTools并重新安装,就像这里建议的那样,因为当我尝试运行xcode-select --install时,我会得到以下错误:

xcode-select: error: command line tools are already installed, use "Software Update" to install updates


请注意,这可能需要30分钟甚至更长时间。 - Ofir Kariv

1

在尝试了各种在线选项后,我找不到合适的解决方案。所以,这就是我做的并起作用的方法。

  1. 按照这里的说明卸载了node

    如果您使用的是Homebrew,请运行以下命令:

    brew uninstall node 
    

    如有需要,请使用--force--ignore-dependencies

  2. 运行node -v。如果仍然看到版本信息,请按照这里的说明操作

  3. 我还想从我的机器上删除nvm。因此,我删除了~/.nvm文件夹。但是,我仍然看到nvm版本。要完全清除,请从~/.bashrc~/.zshrc中删除任何引用

我发现我安装了两个版本的node

  1. 手动安装的
  2. 使用Homebrew安装的

在此之后,我只安装了nvm(不要安装node或npm)。

brew install nvm

然后使用以下命令安装所需版本的node和npm

nvm install <NODE_VERSION> 

这解决了我的node-gyp错误


是Node安装问题还是你改变了Node版本? - Parveen Kumar

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接