【发布时间】:2019-12-22 03:09:10
【问题描述】:
我最近将 OSX 从 10.13.XXX 升级到 10.14.6。升级后,NPM 和 Node 都失败并显示错误消息,我无法找到任何信息。
这是在命令行上运行node 或npm 时出现的错误消息:
dyld: Symbol not found: __ZTVN6icu_6213FieldPositionE
Referenced from: /usr/local/bin/node
Expected in: /usr/local/opt/icu4c/lib/libicui18n.62.dylib
in /usr/local/bin/node
Abort trap: 6
似乎最快/最简单的解决方法是卸载/重新安装 node 和 npm,但如果可能的话,我宁愿修复实际问题。
更多信息:
brew reinstall node 抛出这个:
/usr/local/Homebrew/Library/Homebrew/global.rb:12:in `require': cannot load such file -- active_support/core_ext/object/blank (LoadError)
from /usr/local/Homebrew/Library/Homebrew/global.rb:12:in `<top (required)>'
from /usr/local/Homebrew/Library/Homebrew/brew.rb:23:in `require_relative'
from /usr/local/Homebrew/Library/Homebrew/brew.rb:23:in `<main>'
【问题讨论】:
-
安装正确版本的 node 确实是解决办法。 OSX 不遵循 semver,它的 10.14 非常破坏向后兼容性。 10.14 将 OSX 移动到“我们真的只想成为 64 位”,因此您在 10.13 上安装的任何 32 位程序很可能有问题:您必须重新安装 Node.js。而不是使用
brew reinstall,可以尝试在原地做一些事情,先正确删除Node,然后让brew发现OSX 64位版本。 -
嗨,迈克,我可以使用
brew reinstall进行修复(请参阅下面的评论),但我很好奇如何正确删除节点以使用 OSX 64 位版本。有什么指点吗? -
您会从
brew remove node开始,然后它通常会报告它无法自行删除的所有内容,因此您可以手动处理sudo rm和sudo unlink这些内容。