为什么编译器在 Ubuntu 上的 React 应用程序 运行 中查找 src 文件夹而不是 node_modules 文件夹中的依赖包

Why the compiler looks for dependencies packages on src folder instead of node_modules folder in a React app running on Ubuntu

我在 Windows 10 上使用 React 和 Material UI,一切正常,但是当我在 Ubuntu 上打开项目时,我收到此错误许多进口:

Module not found: Can't resolve 'name of the imported package in '/home/computerName/Desktop/Dev/nameOfTheProject/client/src

例如:

import WalletConnectProvider from '@walletconnect/web3-provider';

错误:

Module not found: Can't resolve '@walletconnect/web3-provider' in '/home/computerName/Desktop/Dev/nameOfTheProject/client/src

对于每个 Material UI 导入和其他依赖项依此类推。

Ubuntu 正在 src 文件夹而不是 node_modules 文件夹中寻找依赖包。

我该如何解决这个问题?

我终于找到了这个问题的答案。 由于 Ubuntu 区分大小写并且 Material UI 名称文件夹在 node_modules 中大写我收到此错误是因为我正在导入一些 Material UI 小写的依赖,像这样:

import Card from '@material-ui/core/card';

其中node_modules文件夹中的card dependencies是大写的Card。 虽然 Windows 会忽略这一点并且不会抛出错误,但 Ubuntu 会抛出错误,因为它设置为区分大小写。

所以我不得不将所有小写依赖项都改为大写。

另一个解决方案是导入解构的依赖项:

import {Card} from '@material-ui/core';