【问题标题】:'File name differs from already included file name only in casing' on relative path with same casing具有相同大小写的相对路径上的“文件名与仅在大小写中包含的文件名不同”
【发布时间】:2018-12-14 07:51:42
【问题描述】:

错误 TS1149:文件名“C:/Project/frontend/scripts/State.ts”与已包含的文件名“../frontend/scripts/State.ts”不同,仅在大小写中。

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

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

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

【问题讨论】:

  • 在我的情况下是这样的,(使用大写而不是小写)

标签: javascript windows typescript compiler-errors


【解决方案1】:

2021 年更新

这是我的 IDE 中发生的 wired 错误,但只需两个简单的步骤即可完成:

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 扩展。

【讨论】:

  • 你真的是我的英雄。谢谢!
  • @novonimo,你也是我的英雄,谢谢兄弟!
  • 是的,谢谢 HERO LOL
【解决方案2】:

就我而言,我使用的是 Nextjs。删除.next 文件夹并再次启动应用程序即可解决问题。

【讨论】:

    【解决方案3】:

    对于 VS Code,唯一对我有用的是清除编辑器历史记录:

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

    【讨论】:

      【解决方案4】:

      对于 VS Code IDE 用户:

      您可以通过打开命令面板 (Ctrl+Shift+P) 来修复它 --> 选择 Typescript: Restart TS server。

      【讨论】:

        【解决方案5】:

        我试过这两种方法:

        1. 使用“@/frontend/scripts/State.ts”而不是“../frontend/scripts/State.ts”导入文件。它仅在您使用路径别名时才有效。

        2. 重命名项目目录,从新目录打开项目。

        【讨论】:

          【解决方案6】:

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

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

          重命名文件或重新启动没有帮助。该错误在重命名文件并让 Vetur 使用导入完成后开始。

          【讨论】:

            【解决方案7】:

            删除 .vue 扩展名,它起作用了

            【讨论】:

              【解决方案8】:

              再次编写导入对我有用。

              【讨论】:

                【解决方案9】:

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

                【讨论】:

                  【解决方案10】:

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

                  【讨论】:

                  • 如果其他人在 Vue 中遇到同样的问题,我可以保证这解决了错误,至少在 Vue3 中。
                  • 这确实有效。你知道为什么吗?这必须成为地球上最奇怪的虫子之一,哈哈。
                  【解决方案11】:

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

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

                  这一定是 VS Code 内部的某种缓存问题

                  【讨论】:

                  • 在我的情况下,我只是重命名了文件,然后再次重命名
                  • 这里也一样,重命名文件然后重新命名也对我有用。 tnx
                  • 相同,重命名文件。奇怪的问题。
                  • 在我的例子中是 ComponentName.Vue 与 ComponentName.vue(大写和小写 V)。一切都按预期显示为小写,但仍然是错误。上述步骤有效。谢谢
                  【解决方案12】:

                  对我来说,当文件从 someFile.ts 快速重命名为 SomeFile.ts 时,就会出现问题。重新启动我的 IDE (Visual Studio Code) 使警告消失。

                  【讨论】:

                  • 通常像 Reload Window 这样的东西对我有用,但在这种情况下需要完全重启 VS Code
                  • 我必须完全重启
                  • 相同...重新启动成功了
                  【解决方案13】:

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

                  【讨论】:

                  • 对我来说就是这种情况。我有 app.js 和 App.test.js 并且在从 app.js 导入时收到此错误 - 'app.js' 与已包含的文件名 '/src/App.js' 仅在大小写中不同。 ts(1149) 小写 App.test.js 修复了它。
                  • 对我来说也一样。出于某种原因,重复的文件只存在于 github 中,heroku 在构建时因此错误而失败。谢谢
                  【解决方案14】:

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

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

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

                  【讨论】:

                  • 出于某种原因,在我的开发环境中,默认情况下它工作正常,但在生产构建(Docker,alphine-linux)中它出现了问题。我发现使这个标志为真,使它一直在窃听,这就是我想要的。 :) 谢谢!
                  【解决方案15】:

                  将“React”更改为“react”对我有用。

                  不正确:

                  import React from "React";
                  

                  正确:

                  import React from "react";
                  

                  【讨论】:

                    【解决方案16】:

                    在我的例子中,错误出现在 import 语句中。导入语句有一个大写字母而不是小写字母,这在 Windows 开发期间有效,但在编译生产时无效。

                    错误:

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

                    正确:

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

                    【讨论】:

                    • 这个答案是正确的。
                    • 就是这样。谢谢
                    【解决方案17】:

                    答案是我们使用的是 tisfy 1.0.1,而 forceConsistentCasingInFileNames 直到 4.0.0 才被支持。更新解决了这个问题。

                    【讨论】:

                    • 什么是 tisfy ?
                    • 更新什么?请提供有关您更新内容的更多信息
                    猜你喜欢
                    • 2019-06-04
                    • 1970-01-01
                    • 2012-03-01
                    • 2012-01-26
                    • 1970-01-01
                    • 2022-06-16
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多