我最近买了一台Mac,它使用Mac OSX El Capitan v10.11.4。使用自制软件安装节点,并使用节点v6.2.2和npm v3.9.5。我在npm install
期间收到了bcrypt错误,我认为这是因node-gyp rebuild
错误导致的。我最近也下载了xcode-select(版本2343)和xcode(7.3.1)(按此顺序)。
这是我运行npm install
后的完整错误输出:
https://gist.github.com/varunjayaraman/5734af617d616437cd5b3456b20bc503
不确定出了什么问题。我来自linux的土地,并且确实对自己不从源代码安装保持警惕,所以也许这就是导致这些问题的原因?无论如何,任何建议都会受到超级赞赏。我也看到了其他人的错误,但他们的解决方案似乎都没有用(当我输入xcode-select --print-path
时,我得到/Applications/Xcode.app/Contents/Developer
)
答案 0 :(得分:13)
这个也是我的一点点。有几个不同的解决方案,其中只有一个适合我。
首先,确保安装了XCode命令行工具,正如他们在npm page上所说的那样。
1)最简单的解决方案,当然不起作用(尽管它看起来像某些人一样),只是删除~/.node-gyp
目录。所以不妨给出一个镜头,同时删除你的node_modules
目录并做另一个npm install
。
2)尝试卸载node-gyp并重新安装:
sudo npm uninstall node-gyp -g
npm uninstall node-gyp
npm install
3)但是诀窍是in a node-gyp issue on github给出的解决方案,你必须安装另一个版本的节点并以这种方式进行你的npm安装。这听起来比听起来容易,但是非常严重:
sudo npm cache clean -f
sudo npm install -g n
sudo n 4.4.5
sudo npm install npm -g
sudo npm uninstall node-gyp -g
然后尝试运行npm install。
希望有所帮助!
答案 1 :(得分:1)
如果node_modules
缓存是使用最新版本的Node构建的,则可能需要删除缓存,还原并重新安装软件包:
rm -rf node_modules
nvm use 6
npm install
答案 2 :(得分:1)
如果您为python使用virtualenv,则需要将其停用或指向npm以使用OS自身的python 2安装来使node-gyp正常工作。
编辑:
几天前又遇到了同样的错误。这次围绕node-gyp发生故障是 not 。显然,我正在安装的模块依赖于非常旧的node-gyp(v1)版本,与系统版本(v3.8)无关,而我的节点(v10)版本不再支持该版本。由于不再需要该模块,因此将其删除。或者,您可能希望升级/降级/替换有问题的模块,或升级/降级您的节点。对于OP而言,有问题的模块是bcrypt@0.8.5。
答案 3 :(得分:1)
升级macOS后我遇到了相同的问题
更新酿造
brew update
更新X代码
xcode-select --install
如果需要,您可能必须将路径重置为X代码
xcode-select --switch /Applications/Xcode.app
xcode-select --switch /Library/Developer/CommandLineTools
答案 4 :(得分:0)
尝试了许多解决方案后,对我有用的是卸载节点n,npm和nvm。重新安装nvm并与其一起安装节点。我正在关注以下答案:
How do I completely uninstall Node.js, and reinstall from beginning (Mac OS X)
痛苦而漫长,但有效。
答案 5 :(得分:0)
如果要将Node升级到10或更高版本,则必须在package.json中找到与Node 10无关的依赖关系,并将这些软件包升级到较新的稳定版本,然后进行构建(npm / yarn安装)。
答案 6 :(得分:0)
每当我将OSX升级到较新版本时,都会遇到相同的问题。 这是我每次解决问题的方法:
sudo rm -rf /Library/Developer/CommandLineTools
xcode-select --install
就是这样。现在,下次您执行npm install或yarn时,它将起作用。
答案 7 :(得分:0)
尝试查看您的python安装。
我在https://github.com/nodejs/node-gyp/issues/489#issuecomment-431447692的讨论中发现了一个提示。
我的MacBook Pro上的python由Homebrew管理,该软件将二进制文件安装到
/ usr / local / bin
所以我在终端上做了以下事情:
>$: npm config set python /usr/local/bin/python
>$: rm -rf node_modules
>$: npm i
答案 8 :(得分:0)
我遇到了类似的问题,运行下面的命令为我解决了
Install Xcode // if you dont have it installed already
Run sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
答案 9 :(得分:0)
我有一个简单的解决方案。如果安装了 xcode-select 尝试运行
sudo xcode-select --reset