macOS全局安装Surge客户端报错求助:找不到package.json
我之前也碰到过一模一样的问题!当时在全局装Surge的时候突然弹出这个错误,折腾了好一会儿才找到几个可行的解决办法,给你列出来:
先换个目录再执行安装命令
这个错误看起来是npm错误地尝试读取你当前用户根目录(/Users/mac)下的package.json,但全局安装Surge根本不需要本地有这个文件。你可以先随便新建一个空文件夹(比如在桌面建个temp文件夹),然后用cd ~/Desktop/temp切换进去,再重新运行npm install --global surge试试。我当时就是换了个目录就成功了,估计是之前根目录里残留了奇怪的npm配置或者缓存文件。清理npm缓存后重试
有时候npm缓存损坏会导致安装过程出现各种奇怪的异常。你可以先运行:npm cache clean --force清理完缓存后,再重新执行全局安装命令。
检查Node.js版本(考虑升级)
你用的Node.js 8.9.4确实比较老旧了,虽然Surge入门文档没明确说版本要求,但老版本的npm可能和新包的安装逻辑有冲突。如果上面的方法都不行,可以考虑升级Node.js到LTS版本(比如14.x或16.x,选一个稳定的就行),升级后再尝试安装Surge。尝试用sudo权限安装(不推荐但可以应急)
macOS下全局安装npm包有时候会碰到权限问题,虽然不建议随便用sudo,但可以应急试试:sudo npm install --global surge输入密码的时候注意屏幕上不会显示字符,正常输入回车就行。如果成功了,之后最好配置npm的全局目录到用户权限下的路径,避免以后再用sudo。
另外,你也可以先运行npm config get prefix看看全局安装的路径是否正常,默认应该是/usr/local或者用户目录下的.npm-global,如果路径不对的话,可能需要修改npm的prefix配置。
内容的提问来源于stack exchange,提问作者an_droid_dev

