Typescript: O arquivo difere do arquivo já incluído apenas na caixa: caixa correta, mas caminho relativo

Criado em 5 jul. 2018  ·  44Comentários  ·  Fonte: microsoft/TypeScript

Error TS1149: File name 'C:/Project/frontend/scripts/State.ts' differs from already included file name '../frontend/scripts/State.ts' only in casing.

Verifiquei três vezes a caixa em nossas referências e os arquivos reais também têm a caixa correta. Pelo que eu posso dizer, isso ocorre apenas porque o caminho relativo usa maiúsculas e minúsculas incorretas, ou talvez seja apenas por causa do caminho relativo em si?

Compila perfeitamente no Mac e Linux, mas gera esse erro no Windows.

Bug Fix Available

Comentários muito úteis

Eu tropecei neste mesmo erro recentemente.
Depois de pesquisar no Google, encontrei isso . A última resposta chamou minha atenção. Então, simplesmente fechei a pasta em que estava trabalhando no Visual Studio Code e a abri novamente. Depois que tudo carregado, sem erros e não tive que mexer no arquivo tsconfig.json.

espero que isto ajude

Todos 44 comentários

Parece um bug, mas precisaremos reproduzir de alguma forma. Você tem um arquivo zip ou repo ou uma descrição dos arquivos que podemos usar?

Acontece que o problema era com um módulo de terceiros, o tsify. Nosso projeto estava usando 1.0.1, e forceConsistentCasingInFileNames não era suportado até 4.0.0.

Eu tive o mesmo problema com um dos meus componentes de importação. O nome do diretório do meu componente era histórico com o mesmo "h". Estava tentando importá-lo com "H" maiúsculo. Deveria ser "
import {GraphDataComponent} de "./historical/graph-data/graph-data.component"; "em vez de" import {GraphDataComponent} de "./Historical/graph-data/graph-data.component" em app.moudule. ts.

Obrigado @aaybhangu!

Olá, ainda estou enfrentando esse problema com - erro TS1149: o nome do arquivo 'src / models / headers / userRole.ts' difere do nome de arquivo já incluído 'src / models / headers / UserRole.ts' apenas em maiúsculas e minúsculas.
Tentei várias maneiras de consertar, mas sem sorte. Estou usando o windows.

Eu também estou enfrentando o mesmo problema.
Por enquanto, "resolvido" definindo:
"forceConsistentCasingInFileNames": false,
em tsconfig.json

Eu tropecei neste mesmo erro recentemente.
Depois de pesquisar no Google, encontrei isso . A última resposta chamou minha atenção. Então, simplesmente fechei a pasta em que estava trabalhando no Visual Studio Code e a abri novamente. Depois que tudo carregado, sem erros e não tive que mexer no arquivo tsconfig.json.

espero que isto ajude

Eu me deparei com esse mesmo problema

  • remover o espaço de trabalho não ajudou
  • alterar forceConsistentCasingInFileNames não ajudou

Para o meu caso, em algum lugar do diretório, os erros estavam acontecendo, foi alterado ...? Então eu tive que fazer o seguinte para consertar todos eles.

  1. Você altera o nome do diretório para algo como "OriginalDirectoryName" => "AnotherName"
  2. VsCode tentará atualizar o nome do diretório na fonte, então espere alguns segundos, e ele mostrará todos os arquivos que precisam ser atualizados com o novo nome do diretório.
  3. Vá para File -> Save All e salve todos eles
  4. Altere o nome do diretório de volta "AnotherName" => "OriginalDirectoryName"
  5. Novamente, ele tentará atualizar os arquivos, para que você os salve todos.
  6. Reinicialize o VsCode.

então deve resolver o problema.

Estou recebendo este bug após renomear um arquivo do camelCase para todas as primeiras letras maiúsculas

No meu caso, costumava criar um arquivo chamado Logger mas mudei para logger mais tarde. Um arquivo que importou isso sempre mostra esta mensagem de erro, mas na verdade no terminal ou em outros arquivos, não mostrará esta mensagem.

Portanto, eu uso o recurso VSCode Reload Window para recarregar o VSCode e a mensagem de erro desaparece. Então eu acho que talvez haja um cache em algum lugar no VSCode para esse erro e não foi limpo? Você pode tentar se enfrentar esse problema depois de verificar se o nome do arquivo está correto.

Eu tenho o mesmo problema, e acabei de descobrir que por algum motivo, em algum arquivo ts ele é chamado com uma letra maiúscula, então mudei o nome para minúsculas e funciona.

Você também pode tentar remover este arquivo ts do modelo e criá-lo novamente com o angular-CLI.

Alterar caso resulta em exceção no comando updateOpen. Observe como o arquivo é aberto com caixa diferente e fechado com caixa original no mesmo comando.

Info 69   [10:30:18.128] request:
    {"seq":5,"type":"request","command":"updateOpen","arguments":{"changedFiles":[],"closedFiles":["c:/temp/est/Logger.ts"],"openFiles":[{"file":"c:/temp/est/logger.ts","fileContent":"export class logger {\r\n    \r\n}","scriptKindName":"TS","projectRootPath":"c:\\temp\\est"}]}}
Err 70    [10:30:18.153] Exception on executing command {"seq":5,"type":"request","command":"updateOpen","arguments":{"changedFiles":[],"closedFiles":["c:/temp/est/Logger.ts"],"openFiles":[{"file":"c:/temp/est/logger.ts","fileContent":"export class logger {\r\n    \r\n}","scriptKindName":"TS","projectRootPath":"c:\\temp\\est"}]}}:

    Debug Failure. False expression: Script should not exist and not be open already

    Error: Debug Failure. False expression: Script should not exist and not be open already
        at ProjectService.applyChangesInOpenFiles (c:\Typescript\built\local\tsserver.js:138090:34)
        at Session.handlers.ts.createMapFromTemplate._a.(anonymous function) (c:\Typescript\built\local\tsserver.js:138972:46)
        at c:\Typescript\built\local\tsserver.js:140630:88
        at IOSession.Session.executeWithRequestId (c:\Typescript\built\local\tsserver.js:140621:28)
        at IOSession.Session.executeCommand (c:\Typescript\built\local\tsserver.js:140630:33)
        at IOSession.Session.onMessage (c:\Typescript\built\local\tsserver.js:140653:35)
        at Interface.<anonymous> (c:\Typescript\built\local\tsserver.js:141968:27)
        at Interface.emit (events.js:182:13)
        at Interface._onLine (readline.js:290:10)
        at Interface._normalWrite (readline.js:433:12)
        at Socket.ondata (readline.js:149:10)
        at Socket.emit (events.js:182:13)
        at addChunk (_stream_readable.js:283:12)
        at readableAddChunk (_stream_readable.js:264:11)
        at Socket.Readable.push (_stream_readable.js:219:10)
        at Pipe.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)

Esse problema parece estar mais envolvido do que apenas verificar os nomes dos arquivos raiz. Ao reutilizar o programa, há outro caso de teste que falha, que é o teste simples de reutilização do programa:

it("forceConsistentCasingInFileNames works when renaming file with different casing", () => {
            const loggerFile: File = {
                path: `${projectRoot}/logger.ts`,
                content: `export class logger { }`
            };
            const anotherFile: File = {
                path: `${projectRoot}/another.ts`,
                content: `import { logger } from "./logger"; new logger();`
            };
            const tsconfig: File = {
                path: `${projectRoot}/tsconfig.json`,
                content: JSON.stringify({
                    compilerOptions: { forceConsistentCasingInFileNames: true }
                })
            };

            const host = createWatchedSystem([loggerFile, anotherFile, tsconfig, libFile, tsconfig]);
            createWatchOfConfigFile(tsconfig.path, host);
            checkOutputErrorsInitial(host, emptyArray);
            host.writeFile(anotherFile.path, anotherFile.content.replace("./logger", "./Logger"));
            host.runQueuedTimeoutCallbacks();
            checkOutputErrorsIncremental(host, [
                createCompilerDiagnostic(Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, loggerFile.path, `${projectRoot}/Logger.ts`),
            ]); // Currently the errors are not reported in watch mode but will be reported if program is created from scratch.
        });

Sim, estou tendo o mesmo problema e nenhuma das correções / soluções alternativas mencionadas anteriormente fazem nada para ajudar.

No meu caso, a mensagem é:

error TS1149: File name '/mnt/c/Users/<username>/Documents/adobe-scripts/InDesign/Create Downloadable 
(2020a)/Illustrator/2015.3/index.d.ts' differs from already included file name '/mnt/c/Users/<username>/Documents/adobe-scripts/InDesign/Create Downloadable (2020a)/illustrator/2015.3/index.d.ts' only in casing.

@SturmB

Ilustrador

e

ilustrador

Estou bem ciente da mensagem de erro e do que o transpiler vê. O que _não_ entendo é de onde vem a versão em minúsculas de illustrator . Fiz várias pesquisas e não consegui encontrar absolutamente nenhuma instância em que a palavra illustrator (quando não usada em um comentário ou string ou qualquer outro) esteja toda em minúsculas. A única instância em que estou me referindo ao arquivo index.d.ts naquela pasta Illustrator , a palavra está em maiúscula corretamente, assim como o nome do diretório.

Tive um problema parecido, mas não consigo mais reproduzi-lo. Parece um bug do VSCode: um arquivo com nome em maiúsculas é exibido como um nome em minúsculas em alguns casos, incluindo o menu de controle de origem.

Percebi que, às vezes, alguém pode alterar o nome de uma pasta de 'foo' para 'Foo' e quando você faz um git pull ele não atualiza o nome da pasta ou alguém se esqueceu de enviar a alteração . Nesse caso, todas as referências de código estão corretas, nada em seu código está errado e muitas vezes os arquivos nessa pasta podem ser encontrados perfeitamente; só vai fazer o TS pirar.

Portanto, encontre a pasta que é a causa raiz. Altere o nome da pasta. E comprometa-se corretamente:

git mv foo tmp
git mv tmp Foo

Seguido por commit e push seria a maneira mais simples de renomear um diretório em um repo git.

Git tem uma definição de configuração que diz se deve ser sensível a maiúsculas ou não: core.ignorecase . Para dizer ao Git para diferenciar maiúsculas de minúsculas, simplesmente defina esta configuração como false

Ver mais:

https://stackoverflow.com/questions/17683458/how-do-i-commit-case-sensitive-only-filename-changes-in-git/17688308#17688308

o que fez para mim foi desfazer todas as renomeações, desligar o servidor, renomear todos os arquivos que desejo renomear e reiniciar o servidor. Deve ser algum tipo de problema de cache.

A janela de recarregamento no VSCode corrigiu o problema. Mudei um componente React para camelCase e me deparei com o problema. Parece haver algum tipo de problema de cache no VSCode.

Acabei de encontrar isso; meu componentA.tsx importou ../store/someStore mas essa importação resultou neste erro, sugerindo que o nome do arquivo era SomeStore.ts (embora o sistema de arquivos e o VSCode mostrem um someStore.ts naquele local .

O nome do arquivo '/mypath/store/someStore.ts' difere do nome do arquivo já incluído '/mypath/store/SomeStore.ts' apenas na caixa. _ts (1149) _

Acontece que algum outro arquivo ( ../store/index.ts ) teve uma importação incorreta ( ./SomeStore ) mas _não_ gerou nenhum erro. Depois de corrigir essa importação e reiniciar o VSCode, componentA.tsx não gera mais esse erro.

Reverter a correção para index.ts e reiniciar o VSCode resulta em um erro espúrio em componentA.tsx novamente.

Uma coisa que fiz para ajudar minha situação foi parar de usar o WSL. Voltei para minha configuração personalizada original, que aproveita o Cygwin e não tive esse problema desde então.

Eu também estou enfrentando o mesmo problema.
Por enquanto, "resolvido" definindo:
"forceConsistentCasingInFileNames": false,
em tsconfig.json

Obrigado ajuda

Depois de pesquisar no Google, encontrei isso . A última resposta chamou minha atenção. Então, simplesmente fechei a pasta em que estava trabalhando no Visual Studio Code e a abri novamente. Depois que tudo carregado, sem erros e não tive que mexer no arquivo tsconfig.json.

Isso realmente funcionou

Consegui reproduzir isso definindo o nome de um arquivo e renomeando-o para outro. Não parece estar sendo atualizado no mapeamento de origem corretamente. Excluí o arquivo com problema e o adicionei novamente. Uma dor, sim, mas funcionou.

Tive o problema, resolvi-o definindo "forceConsistentCasingInFileNames": false
em tsconfig.json então para true novamente.

Eu conserto apenas reinicie o VSCode.

Eu tenho um problema semelhante no WebStorm depois de mudar os nomes dos arquivos, tenho certeza que é algum cache IDE.

Se limpar o cache / reinicializar o IDE não ajudar, remova a pasta, clone o repo novamente e faça uma instalação limpa.

Eu encontrei isso em um mac:

Cenário

  • arquivo denominado ComponentA.ts
  • componentB.ts tem import ComponentA from './ComponentA';
  • componentC.ts também tem import ComponentA from './ComponentA';
  • altere o nome do arquivo ComponentA.ts para componentA.ts
  • atualize componentC.ts para import ComponentA from './componentA;'
  • esqueça de atualizar a importação de componentB.ts para que ainda tenha o antigo import ComponentA from './ComponentA;' capitalizado

Erro (aproximadamente):

 File name '/componentA.ts' differs from already included file name  '/ComponentA.ts'  only in casing. ts(1149)

Razão:

A insensibilidade a maiúsculas e minúsculas no Mac está resolvendo a importação remanescente import ComponentA from './ComponentA;' em componentB.ts primeiro, então 'caching / registration' este caminho de importação.

Então, a importação correta em componentC.ts apresenta um erro, embora esteja correta.

Como remediar:

  • encontre todas as importações de componentA.ts / ComponentA.ts
  • verifique a sensibilidade a maiúsculas e minúsculas e corrija.

No meu caso, o arquivo com erro componentC.ts estava realmente correto e eu tive que consertar o componentB.ts , embora a mensagem indicasse um problema com o componentC.ts .

Eu tive que renomear meu arquivo e gulp build. Então, mudei o nome de volta para o antigo nome original e tudo funcionou bem.

Por causa do cache estranho que não cobre o caso de alteração do nome do arquivo vue e, portanto, reclamar de Vetur, tive que recarregar o código do VS ( Ctrl + Shirt + P -> Recarregar a janela) como @uniquexiaobai aconselhou.

Uma reinicialização do Typescript-Server será suficiente. A reinicialização do VSCode é um exagero.

No VSC no OSX: CMD + Shift + P seguido pela digitação de TypeScript: Restart TS server .

Com webstorm, você precisa invalidar e limpar o cache:
arquivo> invalidar caches / reiniciar

A solução mais curta e melhor que encontrei é.

Apenas remova aquela palavra que está causando problemas de revestimento.
por exemplo
ListsDrawerOfContent e ListsDrawerofContent

Eu removi do nome do arquivo. E os compiladores o compilaram corretamente.

Então, mais tarde, renomeei pelo meu caso desejado ListsDrawerOfContent .
Funcionou como um encanto.

Além disso, tenha em mente o git.

https://stackoverflow.com/questions/17683458/how-do-i-commit-case-sensitive-only-filename-changes-in-git

Eu tive o mesmo problema com a importação, após renomear um arquivo de "a" para "A", eu apenas reiniciei o código vs e então funciona.

Eu tive o mesmo problema. O reinício do VSCode e a configuração de "forceConsistentCasingInFileNames": false não pode me ajudar.

informações de erro: (apenas diferem no símbolo do disco)
O nome do arquivo 'D: /mycode/devmono2/packages/server-sdk/index.ts' difere do nome do arquivo já incluído 'd: /mycode/devmono2/packages/server-sdk/index.ts' apenas em maiúsculas e minúsculas.Vetur ( 1149)

porque?

Resolvido!
O meu problema era simples.

Tudo estava bem localmente no mac, mas eu estava recebendo este erro no meu servidor Jenkins. O problema era simplesmente que localmente o nome do arquivo era 'quote.ts', mas dentro do meu repositório git remoto era 'Quote.ts'.

Como surgiu o problema
Portanto, o nome do arquivo era originalmente 'Quote.ts', que eu empurrei. Em seguida, mudei para 'quote.ts', mas git não viu isso como uma mudança (acredito que os macs não diferenciam maiúsculas de minúsculas) - e, portanto, a mudança de maiúsculas e minúsculas não foi refletida no repo remoto.

E então, quando o pipeline do Jenkins foi executado, ele puxou 'Quote.ts' quando estava sendo referenciado como '../../quote.ts' - o que resultou no erro.

Como eu resolvi isso

  1. Beber café
  2. Alterar o nome do arquivo no repo remoto manualmente para minúsculas
  3. git pull localmente
  4. Executar pipeline

Boom Bam! Espero que isso ajude alguém

Tive um problema semelhante que gerou cerca de 100 desses erros.

Não os li de perto, pois todos pareciam ter o mesmo problema raiz. Recentemente, mudei para o nó em execução no WSL2 que considerei garantido ser a causa do problema. Após 2 horas sem sucesso, examinei toda a lista e encontrei um exemplo em que havia um bug real.

import {FooInterface} de '../Foo'; // deve ser '../foo'
importar {BarService} de '../Bar'; // deve ser '../bar'

Mudei para minúsculas, recarreguei o vscode, reconstruí e todos os erros foram embora.

O que eu acho que aconteceu é que ts tentou importar o caminho incorreto ('Foo' em vez de 'foo') e então armazenou o resultado em cache e tentou usar o caminho incorreto em cache ao processar o resto do código.

Espero que isso ajude alguém lá fora!

Acabei de reiniciar minha ide e o erro desapareceu

apenas faça um mesmo objeto no componente e inicie seu ng, após executar com sucesso, remova o objeto e importe seu link
então deve funcionar,
No meu projeto funcionou.

isso acabou de acontecer comigo, é um problema contínuo que não foi resolvido. Acontece sempre que eu mudo a capitalização de um nome de diretório e tento confirmar a mudança. Git não reconhece a mudança de maiúsculas e minúsculas para um nome de diretório.

+1 ...... mas POR QUÊ?

Eu apenas enfrentei o problema. Descobri que quando tentei importá-lo usando o vscode, o VSCode usou o nome do arquivo anterior e o nome do diretório. Então eu modifiquei e depois de executar tsc ele não mostrou nenhum erro no terminal, mas eu ainda estava recebendo aquela linha embaralhada de leitura no VSCode. Então eu reiniciei o servidor Typescript no vscode ( Typescript: Restart TS Server ) e ele foi embora. Espero que ajude alguém.

@ninjavang você me ajudou! Tive o mesmo problema acontecendo com meu pipeline gitlab ci / cd. Acontece que quando fui para a filial remota e verifiquei o caminho do arquivo, havia duas versões do arquivo, cada uma em sua versão com distinção entre maiúsculas e minúsculas.

Excluí a versão indesejada do controle remoto, copiei o arquivo localmente, desliguei o controle remoto, atualizei meu código VS e adicionei novamente o arquivo. Funcionou!

Obrigado pela ajuda!

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

seanzer picture seanzer  ·  3Comentários

manekinekko picture manekinekko  ·  3Comentários

Antony-Jones picture Antony-Jones  ·  3Comentários

DanielRosenwasser picture DanielRosenwasser  ·  3Comentários

bgrieder picture bgrieder  ·  3Comentários