找不到模块:无法解析“@react-three/cannon”
Module not found: Can't resolve '@react-three/cannon'
我一辈子都弄不明白为什么我总是收到这个错误。很可能是一个简单的疏忽使情况变得更糟。
我使用 CRA 创建了一个新的 React 应用程序,安装了 @react-three/fiber, @react-three/cannon
和三个,并将 use-cannon 文档中的代码示例复制到我的应用程序组件中以供使用。但是,我不断收到此错误。我试过重新安装软件包,但没有任何作用。我尝试废弃该应用程序并开始一个新应用程序。没有什么。我在使用代码沙箱时也遇到了同样的错误。
我的 package.json 依赖项如下所示:
"dependencies": {
"@react-three/cannon": "^2.6.0",
"@react-three/drei": "^7.3.1",
"@react-three/fiber": "^7.0.6",
"@testing-library/jest-dom": "^5.14.1",
"@testing-library/react": "^11.2.7",
"@testing-library/user-event": "^12.8.3",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-scripts": "4.0.3",
"three": "^0.131.3",
"web-vitals": "^1.1.2"
}
我的App.js看起来像这样:
import React from "react";
import { Canvas } from "@react-three/fiber";
import { Physics, usePlane, useBox } from "@react-three/cannon";
function Plane(props) {
const [ref] = usePlane(() => ({ rotation: [-Math.PI / 2, 0, 0], ...props }));
return (
<mesh ref={ref}>
<planeBufferGeometry args={[100, 100]} />
</mesh>
);
}
function Cube(props) {
const [ref] = useBox(() => ({ mass: 1, position: [0, 5, 0], ...props }));
return (
<mesh ref={ref}>
<boxBufferGeometry />
</mesh>
);
}
const App = () => {
return (
<Canvas>
<Physics>
<Plane />
<Cube />
</Physics>
</Canvas>
);
};
export default App;
感谢您的帮助!
我刚刚注意到 @react-three/cannon 2.6.0
的新版本有问题。尝试将 @react-three/cannon
的版本降级到 2.5.0
,错误就会消失。我看到了同样的错误并通过更改版本修复了它。我们可能需要在 r3f github 存储库中提出问题。
运行 演示:
(r3f cannon 2.5.0的demo)
https://codesandbox.io/s/elegant-sinoussi-zjzhj?file=/src/Cube.tsx
我一辈子都弄不明白为什么我总是收到这个错误。很可能是一个简单的疏忽使情况变得更糟。
我使用 CRA 创建了一个新的 React 应用程序,安装了 @react-three/fiber, @react-three/cannon
和三个,并将 use-cannon 文档中的代码示例复制到我的应用程序组件中以供使用。但是,我不断收到此错误。我试过重新安装软件包,但没有任何作用。我尝试废弃该应用程序并开始一个新应用程序。没有什么。我在使用代码沙箱时也遇到了同样的错误。
我的 package.json 依赖项如下所示:
"dependencies": {
"@react-three/cannon": "^2.6.0",
"@react-three/drei": "^7.3.1",
"@react-three/fiber": "^7.0.6",
"@testing-library/jest-dom": "^5.14.1",
"@testing-library/react": "^11.2.7",
"@testing-library/user-event": "^12.8.3",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-scripts": "4.0.3",
"three": "^0.131.3",
"web-vitals": "^1.1.2"
}
我的App.js看起来像这样:
import React from "react";
import { Canvas } from "@react-three/fiber";
import { Physics, usePlane, useBox } from "@react-three/cannon";
function Plane(props) {
const [ref] = usePlane(() => ({ rotation: [-Math.PI / 2, 0, 0], ...props }));
return (
<mesh ref={ref}>
<planeBufferGeometry args={[100, 100]} />
</mesh>
);
}
function Cube(props) {
const [ref] = useBox(() => ({ mass: 1, position: [0, 5, 0], ...props }));
return (
<mesh ref={ref}>
<boxBufferGeometry />
</mesh>
);
}
const App = () => {
return (
<Canvas>
<Physics>
<Plane />
<Cube />
</Physics>
</Canvas>
);
};
export default App;
感谢您的帮助!
我刚刚注意到 @react-three/cannon 2.6.0
的新版本有问题。尝试将 @react-three/cannon
的版本降级到 2.5.0
,错误就会消失。我看到了同样的错误并通过更改版本修复了它。我们可能需要在 r3f github 存储库中提出问题。
运行 演示:
(r3f cannon 2.5.0的demo)
https://codesandbox.io/s/elegant-sinoussi-zjzhj?file=/src/Cube.tsx