如何解决部署Next js app时vercel“ModuleNotFoundError”

z9smfwbn  于 2023-08-04  发布在  其他
关注(0)|答案(4)|浏览(215)

每当我试图将我的网站部署到vercel时,我都会遇到这个ModuleNotFoundError。我已经重命名了我的组件和CSS模块,但由于某种原因,我一直得到这个错误。
有没有人知道如何解决这个问题,因为我不知道我做错了什么?
错误日志屏幕截图


的数据

ia2d9nvy

ia2d9nvy1#

如果您已将文件夹或文件的名称更改为小写或大写,例如:从/Components到/components
这个问题应该是因为你的远程分支没有更新,而在本地分支的名字已经是正确的,你的解决方案运行,但vercel使用linux,这是大小写敏感的,所以,ModuleNotFoundError发生。
要解决这个问题,您可以将文件夹/文件保存在其他位置,然后将其从项目中删除并提交。提交后,你应该复制并通过文件/文件夹保存在另一个地方在你的项目再次提交推到romete分支与正确的结构。你也可以使用命令“git mv“oldfileOrFolder”“newFileOrFolder”,参见文档。

vhipe2zx

vhipe2zx2#

你是否推送了一个只重命名文件的提交?如果您使用的是不区分大小写的文件系统(通常是macOS),而远程它是区分大小写的文件系统(基于Linux的构建环境)-这可能会导致问题。您可以通过将该文件重命名为其他名称来进行确认(这样大小写就不会成为问题)。
要确认,在本地运行next build && next start是否有效?

hxzsmxv2

hxzsmxv23#

问题出在“styles”文件夹上,由于某种原因vercel找不到我的css文件的路径。我解决了这个问题,把我所有的css文件(除了global.css)移到我的“Components”文件夹(虽然不是最好的选择,但它工作了)。然后我用这段代码创建了一个“jsConfig.json”文件。{“compilerOptions”:{“baseUrl”:“.",“路径”:{“@/components/*":[“组件/*"]}
最后,这是我如何开始导入我的CSS文件导入样式从“@/components/. module.css”;

ghhkc1vu

ghhkc1vu4#

我在Vercel上遇到了类似的问题,我尝试了以下所有方法:

  • 清除git缓存,添加文件并按上面的建议推送更改。
  • 重命名文件和包含文件夹
  • 删除文件夹和文件,提交并推送,重新创建文件夹/文件提交并推送。
  • 其他事情我甚至不记得了。

这个问题并不总是由于文件或文件夹的名称被改变了改变其情况下只。重命名文件和文件夹将在这种情况下工作。
最后对我起作用的是,我导入了相对路径,而不是相对于以“src”开头的项目文件夹的路径。准确地说,我最初的导入看起来像这样:
import { DatabaseConnection as db} from 'src/atlas/database.connection';
与Vercel合作的导入是:
import { DatabaseConnection as db} from '../atlas/database.connection';
希望这篇文章能节省你的时间,帮助你避免一些挫折。

相关问题