具有相同大小写的相对路径上的“文件名不同于仅包含大小写的已包含文件名”

时间:2018-07-05 18:40:09

标签: javascript windows typescript compiler-errors

  

错误TS1149:文件名'C:/Project/frontend/scripts/State.ts'仅与大小写字母不同,已经不同于已包含的文件名'../ frontend / scripts / State.ts'。

我已经三遍检查了引用中的大小写,实际文件中的大小写也正确。据我所知,这仅仅是因为相对路径使用了不正确的大小写,还是仅由于相对路径本身?

问题是,它在Mac和Linux上编译正常,但在Windows上抛出此错误。

如果有帮助,则在tsconfig中启用forceConsistentCasingInFileNames,我们正在使用tsify进行编译。

13 个答案:

答案 0 :(得分:15)

对我来说,问题是在文件从someFile.ts快速重命名为SomeFile.ts时发生的。重新启动我的IDE(Visual Studio代码)使警告消失了。

答案 1 :(得分:4)

就我而言,错误是在import语句中。导入声明使用大写字母而不是小写字母,该字母在Windows中的开发过程中有效,但在编译生产时则无效。

错误:

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

正确:

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

答案 2 :(得分:4)

好的,只需要在这里也输入我的“解决方案”,因为它与其他解决方案不同。错误消息清楚地说明了它在哪里看到错误。它是已重命名的目录的外壳(从 Utils -> utils)。即使它在任何地方都正确重命名,我仍然遇到错误。我的解决方案是再次将其重命名(为什么不,呵呵)为 utils2。之后就正常了

答案 3 :(得分:3)

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

答案 4 :(得分:3)

这是我的网络流 IDE 中发生的连线错误,

解决:

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

它在我的情况下修复了。

答案 5 :(得分:1)

当两个文件存在于同一个文件夹中且名称如a.tsx和A.tsx时,您将收到此错误

答案 6 :(得分:1)

重新启动VS Code IDE对我不起作用,我也不想更改配置文件。这些是对我来说解决此问题的步骤:

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

在VS Code中一定是某种缓存问题

答案 7 :(得分:0)

答案是我们使用的是tisfy 1.0.1,当时直到4.0.0才支持forceConsistentCasingInFileNames。更新解决了该问题。

答案 8 :(得分:0)

将“反应”更改为“反应”对我有用。

不正确:

import React from "React";

正确:

import React from "react";

答案 9 :(得分:0)

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

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

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

答案 10 :(得分:0)

再次编写导入对我有用。

答案 11 :(得分:0)

删除 .vue 扩展名就可以了

答案 12 :(得分:0)

如果没有任何效果,请尝试:

  • 删除 node_modules
  • 重启 Vetur
  • yarnnpm i 再次获取您的 node_modules
  • 重启开发者窗口

重命名文件或重新启动没有帮助。在重命名文件并让 Vetur 执行导入操作后,错误开始。