javascript - 使用第三方React UI库时找不到模块 'react' - Vite + Preact

标签 javascript vite preact testing-library vitest

我在这个 Vite 启动的存储库中遇到了这个问题。

https://github.com/vicainelli/vite-starter

我使用的是Vite + Preact + Vitest + 测试库

如果我在代码库内测试任何代码,它工作正常,但如果测试针对使用外部库中的另一个组件的某个组件运行,我会收到此错误。

⎯⎯⎯⎯⎯⎯ Failed Suites 1 ⎯⎯⎯⎯⎯⎯⎯

 FAIL  src/components/Button.test.js [ src/components/Button.test.js ]
 ❯ Object.<anonymous> node_modules/@mantine/styles/cjs/theme/MantineProvider.js:5:13

Test Files  1 failed | 1 passed (2)
     Tests  2 passed (2)
Error: Cannot find module 'react'
Require stack:
- /home/runner/work/vite-starter/vite-starter/node_modules/@mantine/styles/cjs/theme/MantineProvider.js
- /home/runner/work/vite-starter/vite-starter/node_modules/@mantine/styles/cjs/index.js
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯

这类似于 this issue ,但我已经在使用 preact/compact,所以,我不知道我做错了什么。

最佳答案

您需要运行以下命令:

yarn add react@npm:@preact/compat react-dom@npm:@preact/compat

看起来 Vitest 无法有效地别名。

关于javascript - 使用第三方React UI库时找不到模块 'react' - Vite + Preact,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71711207/

相关文章:

javascript - 使用 angular.element 通过 ng-click 添加元素

javascript - 如何将无尽滚动添加到我的应用程序 Rails 4 中

reactjs - withRouter 和 connect 在 v5.0.0 中不起作用?

typescript - Vue 3 如何传递一个可选的 bool Prop ?

deno - Preact/Fresh 上下文导致错误 : Converting circular structure to JSON

reactjs - (p)React 避免提交时不必要的重新渲染

javascript - 有没有办法在 javascript 中使用等同于 json.dumps 的东西

JavaScript "copy"HTML 表单

vite - 在 Vite 中更改输入和输出目录

javascript - 允许 electron `requires` 在 Vite 中原封不动地通过