[Bug]: Vite构建器在尝试优化storybook缓存文件夹中的文件时失败,

daolsyd0  于 6个月前  发布在  其他
关注(0)|答案(4)|浏览(47)

描述bug

在切换分支后,我经常会遇到启动Storybook时出现的以下错误类型(导致它无法加载)

The file does not exist at "<PROJECT_PATH>/node_modules/.cache/storybook/a6871e0c26d33fcbda0875414a230db7277d874a67a0ffb34bdf44755e21997a/sb-vite/deps/chunk-WMAVEDOJ.js?v=78430ec4" which is in the optimize deps directory. 
The dependency might be incompatible with the dep optimizer. Try adding it to `optimizeDeps.exclude`.

删除 .cache 文件夹甚至整个 node_modules 文件夹都无法解决这个问题。
然而,有几个方法可以解决它(直到再次出现问题):

  • 更改/升级Storybook版本(任何版本升级都可以)
  • 更改Storybook的 main.ts 配置(似乎任何更改都可以)
  • 对仓库进行全新的克隆

然而,撤销上述更改会导致问题重新出现。我能想到的唯一原因是全局或至少在项目文件夹之外发生了某种缓存(由Vite或Storybook完成),但我找不到任何关于这方面的文档。

复现链接

抱歉,我没有,可能因项目而异

复现步骤

我没有复现步骤,因为它发生得相当随机。通常发生在在功能分支之间切换然后返回时。

系统

Storybook Environment Info:

  System:
    OS: macOS 14.4.1
    CPU: (8) arm64 Apple M1
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 18.18.1 - ~/.local/state/fnm_multishells/98494_1720679783884/bin/node
    Yarn: 4.1.1 - /opt/homebrew/bin/yarn <----- active
    npm: 9.8.1 - ~/.local/state/fnm_multishells/98494_1720679783884/bin/npm
  Browsers:
    Safari: 17.4.1

附加上下文

Storybook版本:8.1.11
构建器:@storybook/react-vite
项目是一个使用Yarn 4工作区的多仓库项目

u3r8eeie

u3r8eeie1#

很遗憾,如果没有复现问题,我们很难调查。你能缩小有问题的依赖项范围吗?看到你的故事书依赖项也会有帮助。

oug3syen

oug3syen2#

我理解,但问题似乎是以一种看似不可预测的方式发生的,而且似乎非常具体地针对这个项目。该项目有很多内部包作为依赖项,所以这并没有帮助。Vite错误并不十分有用,因为它没有提到与哪个依赖项相关,只是说一些缓存的块丢失了。

  • 我试图找出更多关于哪个依赖项是问题的信息,但是在Vite配置、Storybook配置或Storybook CLI上指定较低的日志级别似乎没有任何作用(这是一个单独的问题)。
  • 我尝试使用各种依赖项进行optimizeDeps.exclude,但只要配置发生变化,问题就会暂时消失。这使得不清楚是否是正确的包。实际上,我现在放了以下内容,到目前为止,通过始终“更改”配置来解决整个问题。
exclude: [..., `fake-dep-${Math.random()}`],
  • 我也尝试过一个空的optimizeDeps.includeoptimizeDeps.force,但都没有成功。

我只是想知道是什么解释了optimizeDeps设置的任何更改会暂时解决问题,以及任何故事书版本升级也是如此。

ogq8wdun

ogq8wdun3#

如果这个数据点有帮助的话,我今天第一次在vite构建的React应用中遇到了这个错误(与Storybook无关),在调用vite build之后:
The file does not exist at "[...project directory]/node_modules/.vite/deps
删除该目录的内容并重新运行vite build后,它又变得正常了。我搜索了一下,关于这种错误条件的信息非常少。

lokaqttq

lokaqttq4#

在删除该目录的内容并重新运行vite build之后,
在使用Vite构建器创建的Storybook中,依赖项缓存在sb-vite目录中,但是删除它,甚至运行rm -rf ./**/node_modules都无法解决我的问题。我能想到的唯一原因是某种全局缓存正在以某种方式发生。

相关问题