ims*_*elp 19 javascript npm reactjs visual-studio-code
我正在尝试在一个我很久没有参与过的 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
Run Code Online (Sandbox Code Playgroud)
这是完整的日志
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 ]
Run Code Online (Sandbox Code Playgroud)
我不明白为什么我的服务器无法启动,任何帮助将不胜感激。
Moh*_*lal 20
如果你赶时间的话!并且没有时间知道为什么会发生这种情况!您可以直接移动并滚动到下面的“如何解决它(一种优雅的方式)? ”部分(在最后)!我正在展示一个强大高效且干净的解决方案!
整个问题是缺少依赖关系!那可以是一个js模块或一个文件!就像字体文件或其他类似资产的东西!
And to note: A good error message is being cleaned! Recompiling!
And then the problem belloww is reached and you get the error!
Run Code Online (Sandbox Code Playgroud)
然后错误就来了!我们可以看到我的案例中缺少字体!
但是我们为什么以及如何得到这个错误呢?
主目录中的符号链接已损坏!这已通过react-scripts start、运行过程进行了检查!因为它被破坏了,所以访问会抛出错误is no file or directory
。
在我们的例子中是这样.steampath
!检查下一节的详细信息(什么是 steampath)
让它变得有趣并确认!我用我的名字创建了一个损坏的符号链接!按照字母顺序!它将首先被处理!
是的!现在这里!我们有.allalBrokenLink
!并不是.steampath
!一个快速的解决方案是删除损坏的符号链接!但这不是一个好的解决方案!坏人.steampath
有它的目的!如果您使用的是steam游戏平台!如果你不这样做!您可以放心删除该文件!
否则,解决方案非常简单且有效!在 javascript 调试终端中运行!并在错误出现的地方设置断点!所以它会自动暂停!并且会轻松简单地看到问题!请参阅如何解决它(一种优雅的方式)?部分!
为什么要检查主目录?
首先要说的是!这不是由于nodejs模块解析算法造成的!同样不是由于模块解析算法!
为什么!?
因为模块分辨率!说到模块!而且在需要倒退的情况下!它向后移动到文件系统根目录!并且每次都会 检查node_modules文件夹!所以如果它达到了/home/
!它会直接检查/home/node_modules
!如果有!如果没有就去吧/node_modules
!您可以看到它不会检查目录中的所有文件!因此不会导致符号链接损坏问题。这是因为某些东西正在遍历所有文件并检查它们而引起的!这里不是这样的!
在这种情况下,算法除此之外还会检查以下内容
此外,Node.js 将在以下 GLOBAL_FOLDERS 列表中搜索:
1: $HOME/.node_modules
2: $HOME/.node_libraries
3: $PREFIX/lib/node
这可以在这里说明!我在调试时访问了路径:
你可以看到它是如何倒退的!
在打字稿文档中
我们也可以自己验证一下!
首先通过module.paths
如下方式访问:
我做了一个测试!一个简单的测试项目!我只是导入了一个随机名称!你会得到一个干净的not found module
错误!要知道,我在同一环境中进行了测试,但出现了以下错误!
并且可以检查错误类型!
是的,我们没有提到这个问题!那这是什么 ??
例如,巴别塔就因类似的事情而闻名!它在哪里寻找.babelrc
配置。然而,就像节点模块解析一样,它会向后进行专门检查.babelrc
!以及任何对特定事物有锁定的决议!或者在特定的事物中!会直接检查东西!为什么要检查其他东西!?考虑到所有这些,我怀疑这会是 babel、webpack 和 React-scripts 细节或配置之间的东西!最有可能的是一些加载器或插件的东西!我尝试手动调试!很费时间!我开始通过 chrome devtools 协议自动进行检测!一旦我得到它,我会更新这个部分!
由游戏 Steam 平台创建的文件。
https://askubuntu.com/questions/1103540/why-is-there-a-steampath-in-my-home-directory
这是一个已知的 Steam 问题:符号链接被创建并被故意破坏,以便与某些游戏仍在构建的旧版 Steamworks 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/anything 就是所需要的)
所以如果你用蒸汽!您可能不想删除该文件!
如果你什么都不记得了!你可以直接去find in folder
> node_modules
!并寻找Failed to compile
!一般来说,您会永远记住这一点!
确保选择第二个找到的元素!
知道您也可以,只需打开文件搜索托盘 (CTRL + P)
搜索devServerUtils
并在文件中再次搜索!
这样可能会更快!
之后,您设置断点,如下图所示!
并启动调试器终端!
要知道您只需要return 语句上的断点!
您也可以使用process.exit()!但我更喜欢使用调试器!因为它更干净、简单!
下面介绍如何启动 javascript 调试终端!
跑步npm start
!在那个调试器终端中!
执行会自动停在断点处!您将能够轻松阅读并简单地了解问题所在!
知道一次就完成一次!您稍后可以在需要时启动javascript 调试终端!你就会让它发挥作用!因为你的断点仍然存在!
不需要任何知识即可这样做!
如果还不熟悉调试器的话!并想进一步了解它!
您可以在此处检查 Nodejs 进程的调试器自动附加和 javascript 调试终端
还可以进行一般性的调试
ims*_*elp 14
我已经找到了解决方案。此错误只是一个花哨/令人费解的缺少依赖项消息。如果您安装了项目所需的所有依赖项(有些可能不在 package.json 文件中),它应该可以正常工作。
tmh*_*tmh 12
就我而言,这是因为 package.json 中缺少包。
yarn start
或者npm run start
没有帮我找到丢失的包裹。要找到丢失的,请尝试运行构建命令(yarn build
),构建将退出并显示错误详细信息,如下所示。
正如上面的屏幕截图所示,缺少一个包(在我的例子中react-dnd-html5-backend
)。
小智 5
此问题是由于缺少某些依赖项而引起的。缺少的依赖项未在 中列出package.json
,但正在项目中使用。您可以在控制台中看到该错误,然后它就会被清除。我必须录制我的屏幕并以慢动作查看它,以找到缺少的内容并安装它。
归档时间: |
|
查看次数: |
12000 次 |
最近记录: |