在相同大小写的相对路径上,“文件名与已包含的文件名只有大小写不同”

错误 TS1149: 文件名‘ C:/Project/front/script/State.ts’与已经包含的文件名‘ . ./front/script/State.ts’只有大小写不同。

我在我们的参考文献中三次检查了大小写实际文件也有正确的大小写。据我所知,这仅仅是因为相对路径使用了不正确的大小写,或者也许只是因为相对路径本身?

问题是,它在 Mac 和 Linux 上编译得很好,但在 Windows 上出现了这个错误。

如果有帮助的话,在 tsconfig 中启用了 forceConsistentCasingInFileNames,我们使用 tsify 来编译。

111643 次浏览

答案是,我们使用的是 tisfy 1.0.1,而 forceConsistentCasingInFileNames直到4.0.0才得到支持。

在我的例子中,错误出现在 import 语句中。Import 报表使用大写字母代替小写字母,这在 Windows 开发过程中是可行的,但在为生产而编译时则不行。

错:

import {SomeClass} from '/some/path/SomeClass.ts';

正确:

import {SomeClass} from '/some/path/someClass.ts';

把“反应”改成“反应”对我很管用。

错误:

import React from "React";

正确:

import React from "react";

您需要禁用 tsconfig.json文件中的 "forceConsistentCasingInFileNames"

所以你应该有这样的东西:

{
"compilerOptions": {
...
"forceConsistentCasingInFileNames": false,
...
}
}

当两个文件存在于同一个文件夹中,名称为 A.tsx 和 A.tsx 时,会得到这个错误

对我来说,当一个文件被快速地从 someFile.ts重命名为 SomeFile.ts时,问题就出现了。重新启动 IDE (VisualStudio 代码)消除了警告。

重新启动 VSCodeIDE 对我来说不起作用,我不想更改配置文件。以下是我解决这个问题的步骤:

  1. 从 VSExplorer 中,将问题文件重命名为新名称
  2. 将组件名更改为文件内的新名称
  3. 保存文件
  4. 重新启动 VS 代码
  5. 将文件重命名为我最初想要的名称
  6. 将组件名称更改为匹配

这肯定是 VS 代码内部的某种缓存问题

我的是一个 vue 问题,我删除了.vue 扩展,它工作了

再次编写导入对我来说很有用。

更新日期2021

这是在我的 IDE中发生的一个 真奇怪错误,但它可以通过两个简单的步骤来完成:

rename your file (not component) to another name and once again back to your original name.

例如:

考虑到我们在 components目录中有一个 myFile.js文件:

> src
> components
> myFile.js

首先

myFile.js重命名为另一个名称(任何名称) ,如 temp.js:

myFile.js    ---->    temp.js

第二

回到它原来的名字,

temp.js    ---->    myFile.js

它也可以很好地与 *.ts *.tsx *.js *.jsx扩展一起工作。

好的,只需要把我的“解决方案”也放在这里,因为它与其他的不同。错误消息清楚地说明了它在哪里看到了一个错误。它是一个已经重命名的目录的大小写(来自 Utils-> Utils)。尽管它在所有地方都被正确地重命名了,我仍然得到了错误。我的解决方案是将它重新命名为 utils2(为什么不呢,呵呵)。之后就没事了

Vue 扩展,它工作了

如果没有效果,试试看:

  • 删除 node _ module
  • 重启维图尔
  • 再次使用 yarnnpm i获取 node _ module
  • 重新启动开发人员窗口

重命名文件或重新启动都没有用。这个错误是在重命名一个文件并让 Vetur 使用导入操作之后开始的。

我试过这两种方法:

  1. 使用“@/front/script/State.ts”而不是“ . ./front/script/State.ts”导入文件。只有在使用路径别名时才可以使用。

  2. 重命名项目的目录并从新目录中打开项目。

对于 VS Code IDE 用户:

您可以通过打开命令面板(Ctrl + Shift + P)—— > 选择类型: 重新启动 TS 服务器来修复它。

对于 VS Code 来说,唯一对我有效的方法就是清除编辑器的历史记录:

  1. 按 Ctrl + Shift + P。
  2. 键入命令清除编辑器历史记录。
  3. 按回车键。

在我的例子中,我使用的是 Nextjs。删除 .next文件夹并重新启动应用程序解决了这个问题。

更新 : 再次发生错误。这次删除。接下来没有帮助。原来这是由于我的代码中的循环依赖。

对我来说,问题只是消失了:

  1. 关闭 VS 代码
  2. 删除 node _ module. cache 文件夹。
  3. 重新打开 VS 代码

我有同样的问题,但它来自测试文件内部的导入(基于 开玩笑的)。 解决方案是使用以下命令清除 jest 缓存。

 node ./node_modules/jest/bin/jest.js --clearCache

即使在更改了情况并使 git 配置忽略情况为 false (git config core.ignorecase false)之后,我仍然必须遵循以下步骤,然后才能按预期工作!

git rm -r --cached .
git add --all .
git commit -a -m "Versioning untracked files"
git push origin master

感谢这条评论: https://stackoverflow.com/a/55541435/3272407