错误:ENOENT:没有这样的文件或目录,stat ... .steampath
Posted
技术标签:
【中文标题】错误:ENOENT:没有这样的文件或目录,stat ... .steampath【英文标题】:Error: ENOENT: no such file or directory, stat ... .steampath 【发布时间】:2021-03-05 20:18:24 【问题描述】:我正在尝试在一个我很久没有工作的 React 项目上启动开发服务器。在运行 npm install
和 npm start
时,我收到了标题错误消息。
我尝试手动更新然后降级 Node-sass,但无论我做什么,我仍然遇到同样的错误。
这是我收到的完整错误消息。
Failed to compile.
./src/App.scss (./node_modules/css-loader/dist/cjs.js??ref--5-oneOf-6-1!./node_modules/postcss-loader/src??postcss!./node_modules/resolve-url-loader??ref--5-oneOf-6-3!./node_modules/sass-loader/dist/cjs.js??ref--5-oneOf-6-4!./src/App.scss)
Error: Node Sass version 5.0.0 is incompatible with ^4.0.0.
/home/dylan/Desktop/Werk/Professional stuff/SkylimitHost/node_modules/react-scripts/scripts/start.js:19
throw err;
^
[Error: ENOENT: no such file or directory, stat '/home/dylan/.steampath']
errno: -2,
code: 'ENOENT',
syscall: 'stat',
path: '/home/dylan/.steampath'
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! cleanapp@0.1.0 start: `react-scripts start`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the cleanapp@0.1.0 start 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! /home/dylan/.npm/_logs/2020-11-23T05_19_03_778Z-debug.log
这是完整的日志
0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli '/home/dylan/.nvm/versions/node/v14.15.0/bin/node',
1 verbose cli '/home/dylan/.nvm/versions/node/v14.15.0/bin/npm',
1 verbose cli 'start'
1 verbose cli ]
2 info using npm@6.14.8
3 info using node@v14.15.0
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle cleanapp@0.1.0~prestart: cleanapp@0.1.0
6 info lifecycle cleanapp@0.1.0~start: cleanapp@0.1.0
7 verbose lifecycle cleanapp@0.1.0~start: unsafe-perm in lifecycle true
8 verbose lifecycle cleanapp@0.1.0~start: PATH: /home/dylan/.nvm/versions/node/v14.15.0/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/dylan/Desktop/Werk/Professional stuff/SkylimitHost/node_modules/.bin:/home/dylan/.nvm/versions/node/v14.15.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
9 verbose lifecycle cleanapp@0.1.0~start: CWD: /home/dylan/Desktop/Werk/Professional stuff/SkylimitHost
10 silly lifecycle cleanapp@0.1.0~start: Args: [ '-c', 'react-scripts start' ]
11 silly lifecycle cleanapp@0.1.0~start: Returned: code: 1 signal: null
12 info lifecycle cleanapp@0.1.0~start: Failed to exec start script
13 verbose stack Error: cleanapp@0.1.0 start: `react-scripts start`
13 verbose stack Exit status 1
13 verbose stack at EventEmitter.<anonymous> (/home/dylan/.nvm/versions/node/v14.15.0/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:332:16)
13 verbose stack at EventEmitter.emit (events.js:315:20)
13 verbose stack at ChildProcess.<anonymous> (/home/dylan/.nvm/versions/node/v14.15.0/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack at ChildProcess.emit (events.js:315:20)
13 verbose stack at maybeClose (internal/child_process.js:1048:16)
13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5)
14 verbose pkgid cleanapp@0.1.0
15 verbose cwd /home/dylan/Desktop/Werk/Professional stuff/SkylimitHost
16 verbose Linux 5.4.0-53-generic
17 verbose argv "/home/dylan/.nvm/versions/node/v14.15.0/bin/node" "/home/dylan/.nvm/versions/node/v14.15.0/bin/npm" "start"
18 verbose node v14.15.0
19 verbose npm v6.14.8
20 error code ELIFECYCLE
21 error errno 1
22 error cleanapp@0.1.0 start: `react-scripts start`
22 error Exit status 1
23 error Failed at the cleanapp@0.1.0 start script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]
我不明白为什么我的服务器无法启动,我们将不胜感激。
【问题讨论】:
我的同事遇到了同样的问题,但我们每个人的错误中都显示了不同的文件。我的是.steampath
,他的是libpng12.so.o
。 imstupidpleasehelp 的解决方案解决了。
【参考方案1】:
我已经找到了解决方案。此错误只是一个花哨/复杂的缺少依赖项消息。如果您安装了项目所需的所有依赖项(有些可能不在 package.json 文件中),它应该可以正常工作。
【讨论】:
我正在使用react-scripts@4.0.2
,我注意到我可以通过查看导入错误来查看我忘记安装的依赖项,这些错误在控制台清除之前显示了几分之一秒,这显示错误
我不得不对 CLI 日志进行屏幕记录,然后以慢动作观看以捕捉未找到模块的错误和丢失模块的名称,哈哈。此外,另一种方法是再次安装所有软件包并查看显示unmet peer dependency
的日志,然后安装它们。
感谢这个答案以及 cmets,我能够运行 yarn start > output.txt
,它将错误消息(缺少的模块)转储到文件 output.txt
。这是一种非常奇怪的行为,它调用.steampath
的事实让我特别想知道我的 node_modules 中是否存在恶意软件......
我认为材质图标是材质核心的一部分,并在导入图标时出现此错误。一旦我完成了图标的 npm install ,错误就消失了。只是认为举个例子说明如何触发此错误会有所帮助。
这对我有帮助,还有@OozeMeister 评论,谢谢,在我的情况下是@date-io/moment
【参考方案2】:
如果你赶时间!而且没有时间知道为什么会这样!您可以直接移动和滚动到“如何解决它(一种优雅的方式)?”部分(在最后)!我正在展示一个强大而高效的解决方案!
有什么问题?
整个问题是缺少依赖!那可以是一个js模块或一个文件!可能像字体文件或其他类似资产的东西!
And to note: A good error message is being cleaned! Recompiling!
And then the problem belloww is reached and you get the error!
然后错误来了!在我的案例中,我们可以看到缺少的字体!
但是我们为什么以及如何得到这个错误?
驻留在主目录中的损坏的符号链接!这已通过 react-scripts start 运行过程进行了检查!因为它被破坏了,所以访问会抛出一个is no file or directory
错误。
在我们的例子中是.steampath
!查看下一部分的详细信息(什么是 steampath)
让它变得有趣并确认!我用我的名字创建了一个损坏的符号链接!按照字母顺序!会先处理!
是的!现在这里!我们有.allalBrokenLink
!而不是.steampath
!一个快速的解决方案是删除损坏的符号链接!但这不是一个好的解决方案! borken .steampath
有它的目的!如果您使用的是 Steam 游戏平台!如果你不这样做!您可以放心删除文件!
否则解决方案非常简单高效! 在 javascript 调试终端中运行!并在错误出现的地方设置断点!所以它会自动暂停!并且会轻松简单地看到问题!请参阅如何解决它(一种优雅的方式)?部分!
为什么要检查主目录?
首先要说的!这不是因为 nodejs 模块解析算法! 又不是因为模块解析算法!
为什么!?
因为模块分辨率!说到模块!在需要倒退的情况下!它回溯到文件系统根目录!并且每次 检查 node_modules 文件夹!
所以如果它达到/home/
!它将直接检查/home/node_modules
!如果有!如果没有,请转到/node_modules
!您可以看到它不会检查目录中的所有文件!所以不会导致损坏的符号链接问题。这是因为某些东西正在遍历所有文件并检查它们!这里不是这样!
这种情况下的算法,除此之外,它检查following
此外,Node.js 将在以下 GLOBAL_FOLDERS 列表中搜索: 1: $HOME/.node_modules 2:$HOME/.node_libraries 3:$PREFIX/lib/node
这可以在这里说明!我在调试时访问了路径:
你可以看到它是如何倒退的!
算法很清楚!你可以在这里查看(ref1,ref2!
在打字稿文档here
我们也可以自己验证!
首先通过访问module.paths
,如下所示:
我做了一个测试!一个简单的测试项目!我只导入了一个随机名称!你会得到一个干净的not found module
错误!知道我在相同的环境中进行了测试,我得到了下面的错误!
你可以检查错误类型!
是的,我们没有提到这个问题!那它是什么??
例如,Babel 以类似的东西而闻名!它在哪里寻找 .babelrc
配置。然而,就像节点模块解析一样,它会倒退并专门检查.babelrc
!以及任何对特定事物有锁定的决议!或在特定事物内!会直接查的东西! 为什么要检查其他任何东西!? 鉴于我怀疑它会介于 babel、webpack 和 react-scripts 细节或配置之间!而且很可能是一些加载器或插件的东西!我试图手动调试!这很耗时!我开始通过 chrome devtools 协议自动检测!收到后我会第一时间更新!
什么是蒸汽路径
Game steam 平台创建的文件。
https://askubuntu.com/questions/1103540/why-is-there-a-steampath-in-my-home-directory
这是一个已知的 Steam 问题:符号链接被创建并被故意破坏以兼容旧的 Steamworks SDK,而某些游戏仍然使用该 SDK 构建。
来自https://github.com/anyc/steam-overlay/issues/206
Steam 每次运行时都会在 $HOME 中创建指向不存在的 .steam/sdk32/steam 的符号链接 .steampath,而它应该指向 .steam/bin32/steam。
请勿删除或更改此符号链接,它存在并且被故意破坏以提供旧版 Steamworks 兼容性,如 ValveSoftware/steam-for-linux#5245 中所跟踪。(~/.steam/sdk32/什么都是需要的)
所以如果你使用steam!您可能不想删除此文件!
如何解决(优雅的方式)?
如果你什么都不记得!你可以去find in folder
> node_modules
!并搜索Failed to compile
!通常你会永远记得!
确保选择第二个找到的元素!
知道你也可以,只需打开文件搜索托盘 (CTRL + P)
搜索devServerUtils
然后在文件中再次搜索!
那可能更快!
在此之后,您设置断点,如下图所示!
并启动一个调试器终端!
知道你只需要return语句上的断点!
您也可以使用 process.exit()!但我更喜欢使用调试器!因为它更干净、更简单!
如何启动 javascript 调试终端!
运行npm start
!在那个调试器终端中!
执行会在断点处自动停止!而且您将能够轻松阅读并轻松了解问题所在!
知道一次就完成一次!您可以稍后在需要时启动 javascript 调试终端!你会得到它的作品!因为你的断点仍然存在!
这样做不需要任何知识!
如果不熟悉调试器!并想更好地了解它!
您可以检查nodejs进程和javascript调试终端here的调试器自动附加
还有debugging in general
【讨论】:
【参考方案3】:就我而言,这是因为 package.json 中缺少一个包。
yarn start
或 npm run start
没有帮我找到丢失的包裹。要查找丢失的,请尝试运行构建命令 (yarn build
),构建将退出并显示如下错误详细信息。
正如上面的屏幕截图所说,缺少一个包(在我的例子中是react-dnd-html5-backend
)。
【讨论】:
【参考方案4】:此问题是由于缺少一些依赖项引起的。缺少的依赖项没有在package.json
中列出,但正在项目中使用。
在清除之前,您可以在控制台中看到错误一瞬间。我必须记录我的屏幕并以慢动作查看它以找到丢失的内容并安装它。
【讨论】:
谢谢我也必须这样做!它清除得太快了!【参考方案5】:缺少某些包。就我而言,它是@reduxjs/toolkit。
【讨论】:
正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。 这并没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review【参考方案6】:将 node-sass 降级到版本 4 后,重新启动您的开发服务器。
【讨论】:
你不会相信这种事发生在我身上多少次了 我仍然收到错误消息。降级就是把package.json文件改成"node-sass": "^4.0.0",
吧?
是的。我试图复制您的错误,但没有成功【参考方案7】:
请务必检查您的进口!我正在使用 VS 代码并遇到了同样的问题,因为不是这样做
import useHistory from 'react-router-dom'
// I did (well, actually vscode did it by performing incorrect autoimport)
import useHistory from 'react-router'
【讨论】:
【参考方案8】:解决了查看此日志,npm 清除屏幕并丢失所有这些信息。
npm start > log.txt
【讨论】:
以上是关于错误:ENOENT:没有这样的文件或目录,stat ... .steampath的主要内容,如果未能解决你的问题,请参考以下文章
错误:ENOENT:没有这样的文件或目录,错误时统计“/public/main.html”(本机)
Heroku ENOENT:没有这样的文件或目录,stat '/app/build/index.html'
使用 fs.readdir 和 fs.statSync 返回 ENOENT,没有这样的文件或目录错误
ENOENT:没有这样的文件或目录,stat '/Users/sampai/Desktop/Repos/task_tracker/task_tracker/build/index.html'