【发布时间】:2020-06-20 16:03:54
【问题描述】:
这是一个奇怪的问题。我正在将现有站点转换为 Gatsby(我使用 npm i -g gatsby-cli 安装的 Node 包),当我运行 gatsby develop 时出现错误:
错误:ENOENT:没有这样的文件或目录,stat '/home/me/.steampath'
现在这里的背景故事是,出于某种愚蠢的原因,Steam 在 Linux 上故意安装了一个名为 .steampath 的错误符号链接。但我无法理解的是为什么/如何运行特定的 Node 应用程序 (Gatsby) 会导致此错误,这与我的项目或 Gatsby 无关......而运行其他 Node 应用程序时则不会。
我通过我的项目目录完成了grep:steam 没有出现在任何文件中。同样,我 grepped 我的环境 (env | grep steam),并且没有指向该文件的环境变量。
那么任何人都可以回答:为什么运行 Gatsby 会导致位于我的主文件夹中项目外部的完全不相关的符号链接出现错误?
我想 Gatsby 一定在运行某种系统命令,但我什至无法想象它会运行什么来扫描我的主目录并抱怨符号链接损坏。
附:这个错误出现在最后,在其他错误之后,所以它看起来不像是导致 gatsby develop 失败,而是在最后报告错误。
P.P.S.删除坏的符号链接确实解决了问题(虽然我不知道 Steam 会怎么想)...但是我收到另一个错误,关于我的主文件夹中另一个损坏的符号链接(我不能责怪 Steam对于那个)。所以 某件事 Node/Gatsby 正在做的是扫描我的主目录,并抱怨发现任何损坏的符号链接!
一旦所有损坏的符号链接都被删除,Gatsby 就可以正常工作。好诡异!
【问题讨论】:
-
取决于你的包和依赖项。
-
您能否进一步澄清一下:什么依赖项可以使 Node(或 NPM 包)扫描我的主目录以查找错误的符号链接?
-
任何蒸汽模块?我的意思是——不知道你在用什么,甚至无法猜测。可以是任何东西,直接或传递依赖。
-
好吧,即使我删除了 Steam 符号链接,其他损坏的符号链接仍然存在问题。我只是不明白这怎么可能是一个问题。