Chrome 使用Vite时,HTTP请求停留在挂起状态

vwoqyblh  于 2023-09-28  发布在  Go
关注(0)|答案(2)|浏览(413)

我有一个相当大的Vue 3应用程序(~550个组件)。运行vue-cli-service serve需要两分钟,每次更改后重新构建需要大约20秒。热重载很久以前就停止工作了,所以即使在一个小的样式更改之后,它也总是需要在浏览器中刷新。此外,该应用程序仍然没有完成,它可能会在明年得到2-3倍,所以它可能会更糟。
由于这些问题,我决定将其从Vue CLI迁移到Vite。我已经解决了很多问题,该应用程序似乎与Vite现在有这么多更好的加载时间。
然而,当我启动一个开发服务器(vite命令)并在浏览器中打开它时,它有时会卡住。页面不断加载,我可以在Chrome DevTools的网络选项卡中看到很多未决请求。vite --debug的输出没有什么特别之处,运行vite --force也没有帮助。

当这个问题发生时,浏览器总是加载大量的模块(~900),然后在10-20个模块上卡住。所有这些HTTP请求的状态都是Pending,它们永远不会完成。浏览器或命令行中没有错误。
我不认为任何特定的文件导致这一点。也许问题出在我的深度嵌套的文件夹结构中,每个级别上都有很多使用index.ts文件的重新导出。它大多会卡在我自己的模块上,但我也见过它在等待某个外部库的模块时的情况。
有人遇到过类似的问题吗?你是怎么解决的?

**编辑:**我发现这个问题只发生在Linux上基于Chromium的浏览器(Google Chrome,Brave等)中。它在MacOS和Windows上的Chrome以及Linux上的其他浏览器(Firefox,GNOME Web等)中工作没有任何问题。

xesrikrc

xesrikrc1#

感谢这条评论,我意识到这是文件描述符限制的问题。
在Manjaro Linux(基于Arch-based)上,我可以通过将以下行添加到/etc/systemd/system.conf/etc/systemd/user.conf文件来解决这个问题:

DefaultLimitNOFILE=65536

在此更改之后,Vite在所有浏览器中都没有任何问题。

j5fpnvbx

j5fpnvbx2#

在我的情况下,我使用laravel与vite和我有同样的问题多次,无法找出原因或如何修复.这是令人沮丧的花费这么多时间试图找出问题,有时它的工作由它自己小时后,我忽略了这个问题,并继续与开发应用程序。
今天,我可能会发现这是一个网络相关的问题或配置错误。因为当我在Windows 11上打开飞机模式,把它关掉,它就工作了,一切都像它应该的那样加载正常。

相关问题