Typescript: El archivo difiere del archivo ya incluido solo en la carcasa: carcasa correcta pero ruta relativa

Creado en 5 jul. 2018  ·  44Comentarios  ·  Fuente: 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.

He verificado tres veces la carcasa en nuestras referencias y los archivos reales también tienen la carcasa correcta. Por lo que puedo decir, esto se debe únicamente a que la ruta relativa usa una carcasa incorrecta, o tal vez es solo debido a la ruta relativa en sí.

Se compila bien en Mac y Linux, pero arroja este error en Windows.

Bug Fix Available

Comentario más útil

Me encontré con este mismo error exactamente recientemente.
Después de buscar en Google encontré esto . La última respuesta me llamó la atención. Así que simplemente cerré la carpeta en la que estaba trabajando en Visual Studio Code y la volví a abrir. Después de que todo se cargó, no hubo errores y no tuve que meterme con el archivo tsconfig.json.

espero que esto ayude

Todos 44 comentarios

Esto parece un error, pero necesitaremos alguna forma de reproducirlo. ¿Tiene un archivo zip o repositorio o una descripción de los archivos que podríamos utilizar?

Resulta que el problema fue con un módulo de terceros, tsify. Nuestro proyecto estaba usando 1.0.1, y forceConsistentCasingInFileNames no fue compatible hasta 4.0.0.

Tuve el mismo problema con la importación de uno de mis componentes. El nombre del directorio del componente era histórico con la misma "h". Estaba tratando de importarlo con "H" mayúscula. Debería ser "
importar {GraphDataComponent} de "./historical/graph-data/graph-data.component"; "en lugar de" importar {GraphDataComponent} de "./Historical/graph-data/graph-data.component" en app.moudule. ts.

¡Gracias @aaybhangu!

Hola, todavía estoy enfrentando este problema con - error TS1149: el nombre de archivo 'src / models / headers / userRole.ts' difiere del nombre de archivo ya incluido 'src / models / headers / UserRole.ts' solo en mayúsculas.
He intentado varias formas de solucionarlo, pero no tuve suerte. Estoy usando windows.

También me enfrento al mismo problema.
Por ahora, "resuelto" configurando:
"forceConsistentCasingInFileNames": false,
en tsconfig.json

Me encontré con este mismo error exactamente recientemente.
Después de buscar en Google encontré esto . La última respuesta me llamó la atención. Así que simplemente cerré la carpeta en la que estaba trabajando en Visual Studio Code y la volví a abrir. Después de que todo se cargó, no hubo errores y no tuve que meterme con el archivo tsconfig.json.

espero que esto ayude

Me encontré con este mismo problema

  • eliminar el espacio de trabajo no ayudó
  • cambiar forceConsistentCasingInFileNames no ayudó

Para mi caso, en algún lugar del directorio, los errores estaban ocurriendo, ¿se cambió ...? Así que tuve que hacer lo siguiente para solucionarlos todos.

  1. Cambia el nombre del directorio a algo como "OriginalDirectoryName" => "AnotherName"
  2. VsCode intentará actualizar el nombre del directorio en la fuente, así que espere unos segundos y mostrará todos los archivos que deben actualizarse con el nuevo nombre del directorio.
  3. Ir File -> Save Todos y guardarlos todos
  4. Volver a cambiar el nombre del directorio "AnotherName" => "OriginalDirectoryName"
  5. Nuevamente, intentará actualizar los archivos, así que los guardará todos.
  6. Reinicie VsCode.

entonces debería solucionar el problema.

Recibo este error después de cambiar el nombre de un archivo de camelCase a mayúsculas todas las primeras letras

En mi caso, solía crear un archivo llamado Logger pero luego lo cambié a logger . Un archivo que importó esto siempre muestra este mensaje de error, pero en realidad en el terminal u otros archivos, no mostrará este mensaje.

Entonces uso la función VSCode Reload Window para recargar el VSCode, y el mensaje de error desaparece. Entonces, creo que tal vez haya un caché en algún lugar de VSCode para este error y no se borró. Puede intentarlo si se enfrenta a este problema después de asegurarse de que el nombre del archivo sea correcto.

Tengo el mismo problema y acabo de descubrir que, por alguna razón, en algunos archivos ts se llama con una letra en mayúscula, luego lo renombré por minúsculas y funciona.

También puede intentar eliminar este archivo ts modelo y crearlo nuevamente con angular-CLI.

Cambiar el caso da como resultado una excepción en el comando updateOpen. Observe cómo el archivo se abre con una carcasa diferente y se cierra con la carcasa original en el mismo 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)

Este problema parece ser más complicado que simplemente verificar los nombres de los archivos raíz. Cuando se reutiliza un programa, hay otro caso de prueba que falla, que es una prueba de reutilización de programa simple:

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.
        });

Sí, estoy teniendo el mismo problema y ninguna de las correcciones / soluciones alternativas indicadas anteriormente hace nada para ayudar.

En mi caso, el mensaje es:

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

y

ilustrador

Soy consciente del mensaje de error y de lo que ve el transpilador. Lo que _no_ entiendo es dónde está obteniendo la versión en minúsculas de illustrator . He hecho varias búsquedas y no puedo encontrar absolutamente ninguna instancia en la que la palabra illustrator (cuando no se usa en un comentario o cadena o lo que sea) esté en minúsculas. La única instancia en la que estoy haciendo referencia a ese archivo index.d.ts en esa carpeta Illustrator , la palabra está en mayúscula correctamente, al igual que el nombre del directorio.

Tuve un problema similar, pero ya no puedo reproducirlo. Parece un error de VSCode: un archivo con un nombre en mayúsculas se muestra como un nombre en minúsculas en algunos casos, incluido el menú de control de fuente.

He notado que, a veces, alguien puede cambiar el nombre de una carpeta de 'foo' a 'Foo' y cuando haces un git pull , o no actualiza el nombre de la carpeta, o alguien olvidó presionar el cambio. . En ese caso, todas las referencias de su código son correctas, nada en su código es incorrecto y, a menudo, los archivos en esa carpeta se pueden encontrar sin problemas; solo hará que TS se asuste.

Entonces busque la carpeta que es la causa raíz. Cambia el nombre de la carpeta. Y comete eso correctamente:

git mv foo tmp
git mv tmp Foo

Seguido de commit y push sería la forma más sencilla de cambiar el nombre de un directorio en un repositorio de git.

Git tiene una opción de configuración que le dice si debe distinguir entre mayúsculas y minúsculas o no: core.ignorecase . Para decirle a Git que distinga entre mayúsculas y minúsculas, simplemente establezca esta configuración en false

Ver más:

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

lo que hizo por mí fue deshacer todos los cambios de nombre, apagar el servidor, cambiar el nombre de todos los archivos a los que quiero renombrar y reiniciar el servidor. Debe ser algún tipo de problema de almacenamiento en caché.

La ventana de recarga en VSCode solucionó el problema. Cambié un componente de React a camelCase y encontré el problema. Parece ser algún tipo de problema de almacenamiento en caché en VSCode.

Acabo de encontrarme con esto; my componentA.tsx importó ../store/someStore pero esta importación dio como resultado este error, lo que sugiere que el nombre del archivo era SomeStore.ts (aunque el sistema de archivos y VSCode muestran un someStore.ts en esa ubicación .

El nombre de archivo '/mypath/store/someStore.ts' difiere del nombre de archivo ya incluido '/mypath/store/SomeStore.ts' solo en mayúsculas. _ts (1149) _

Resulta que algún otro archivo ( ../store/index.ts ) tuvo una importación incorrecta ( ./SomeStore ) pero _no_ generó ningún error. Después de arreglar esa importación y reiniciar VSCode, componentA.tsx ya no genera este error.

Revertir la corrección a index.ts y reiniciar VSCode da como resultado un error falso en componentA.tsx nuevamente.

Una cosa que hice para ayudar en mi situación fue dejar de usar WSL. Volví a mi configuración personalizada original que aprovecha Cygwin y no he tenido este problema desde entonces.

También me enfrento al mismo problema.
Por ahora, "resuelto" configurando:
"forceConsistentCasingInFileNames": false,
en tsconfig.json

Gracias, ayuda

Después de buscar en Google encontré esto . La última respuesta me llamó la atención. Así que simplemente cerré la carpeta en la que estaba trabajando en Visual Studio Code y la volví a abrir. Después de que todo se cargó, no hubo errores y no tuve que meterme con el archivo tsconfig.json.

Esto realmente funcionó

Pude reproducir esto estableciendo un nombre de un archivo y luego renombrándolo a otro. No parece que se actualice correctamente en el mapeo de origen. Eliminé el archivo problemático y lo agregué nuevamente. Un dolor, sí, pero funcionó.

Tuve el problema, lo solucioné configurando "forceConsistentCasingInFileNames": false
en tsconfig.json luego a verdadero nuevamente.

Lo arreglo solo reinicio VSCode.

Tengo un problema similar en WebStorm después de cambiar los nombres de archivo, estoy bastante seguro de que es un caché IDE.

Si borrar la memoria caché / reiniciar el IDE no ayuda, elimine la carpeta, clone el repositorio nuevamente y realice una instalación limpia.

Encontré esto en una mac:

Guión

  • archivo llamado ComponentA.ts
  • componentB.ts tiene import ComponentA from './ComponentA';
  • componentC.ts también tiene import ComponentA from './ComponentA';
  • cambie el nombre del archivo ComponentA.ts a componentA.ts
  • actualizar componentC.ts a import ComponentA from './componentA;'
  • Olvídese de actualizar la importación para componentB.ts para que todavía tenga el antiguo import ComponentA from './ComponentA;' mayúscula

Error (aproximadamente):

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

Razón:

La insensibilidad a mayúsculas y minúsculas en Mac es resolver la importación remanente import ComponentA from './ComponentA;' en componentB.ts primero, luego 'almacenar en caché / registrar' esta ruta de importación.

Entonces la importación correcta en componentC.ts es errónea aunque sea correcta.

Cómo remediar:

  • buscar todas las importaciones de componentA.ts / ComponentA.ts
  • compruebe la distinción entre mayúsculas y minúsculas y corrija.

En mi caso, el archivo de error componentC.ts era realmente correcto y tuve que arreglar componentB.ts , aunque el mensaje indicaba un problema con componentC.ts .

Tuve que cambiar el nombre de mi archivo y tragar build. Luego, cambié el nombre al antiguo nombre original y se construyó bien.

Debido a un caché extraño que no cubre el caso de cambiar el nombre del archivo vue y, por lo tanto, quejarse de Vetur, tuve que volver a cargar VS Code ( Ctrl + Shirt + P -> Recargar ventana) como aconsejó @uniquexiaobai .

Un reinicio del Typecript-Server será suficiente. El reinicio de VSCode es excesivo.

En VSC en OSX: CMD + Shift + P seguido de escribir TypeScript: Restart TS server .

Con webstorm, debe invalidar y borrar la caché:
archivo> invalidar cachés / reiniciar

La mejor y más corta solución que encontré es.

Simplemente elimine esa palabra de la que causa problemas de carcasa.
p.ej
ListsDrawerOfContent y ListsDrawerofContent

Eliminé del nombre del archivo. Y los compiladores lo compilaron correctamente.

Luego, más tarde, cambié el nombre por mi caso deseado ListsDrawerOfContent .
Trabajado como un encanto.

Además, tenga en cuenta el git.

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

Tuve el mismo problema con la importación, después de cambiar el nombre de un archivo de "a" a "A", simplemente reinicié el código vs y luego funciona.

Yo tuve el mismo problema. Reinicio de VSCode y configuración "forceConsistentCasingInFileNames": false no me puede ayudar.

información de error: (solo difiere en el símbolo del disco)
El nombre de archivo 'D: /mycode/devmono2/packages/server-sdk/index.ts' difiere del nombre de archivo ya incluido 'd: /mycode/devmono2/packages/server-sdk/index.ts' solo en casing.Vetur ( 1149)

¿por qué?

¡Resuelto!
El mío fue un problema simple.

Todo estaba bien a nivel local en Mac, pero recibía este error en mi servidor Jenkins. El problema era simplemente que localmente el nombre del archivo era 'quote.ts' pero dentro de mi repositorio git remoto era 'Quote.ts'.

Cómo surgió el problema
Entonces, el nombre del archivo era originalmente 'Quote.ts', que presioné hacia arriba. Luego cambié a 'quote.ts', pero git no vio esto como un cambio (creo que los mac no distinguen entre mayúsculas y minúsculas) y, por lo tanto, el cambio de mayúsculas y minúsculas no se reflejó en el repositorio remoto.

Y así, cuando se ejecutó la canalización de Jenkins, estaba bajando 'Quote.ts' cuando se hacía referencia como '../../quote.ts', lo que da como resultado el error.

Como lo resolví

  1. Beber café
  2. Cambiar el nombre de archivo en el repositorio remoto manualmente para que esté en minúsculas
  3. git pull localmente
  4. Ejecutar canalización

¡Boom Bam! Espero que esto ayude a alguien

Tuvo un problema similar que generó alrededor de 100 de estos errores.

No los leí todos con detenimiento, ya que todos parecían tener el mismo problema de raíz. Recientemente había cambiado al nodo en ejecución en WSL2 que di por sentado que era la causa del problema. Después de 2 horas sin éxito, revisé toda la lista y encontré un ejemplo en el que había un error real.

importar {FooInterface} desde '../Foo'; // debe ser '../foo'
importar {BarService} desde '../Bar'; // debe ser '../bar'

Lo cambié a minúsculas, recargué vscode, lo reconstruí y todos los errores desaparecieron.

Lo que creo que sucedió es que intentó importar la ruta incorrecta ('Foo' en lugar de 'foo') y luego guardó en caché el resultado e intentó usar la ruta en caché incorrecta al procesar el resto del código.

¡Espero que esto ayude a alguien!

Acabo de reiniciar mi ide y el error desapareció.

simplemente cree un mismo objeto en el componente e inicie su ng, después de ejecutarlo correctamente, luego elimine el objeto e importe su enlace,
entonces debería ser trabajo,
En mi proyecto funcionó.

Esto me acaba de pasar, es un problema continuo que no se ha resuelto. Sucede cada vez que cambio la mayúscula de un nombre de directorio e intento confirmar el cambio. Git no reconoce el cambio en mayúsculas y minúsculas para un nombre de directorio.

+1 ...... pero POR QUÉYYYYYYY

Acabo de enfrentar el problema. Resultó que cuando intenté importarlo usando vscode, VSCode usó el nombre de archivo y el nombre de directorio anteriores. Así que lo modifiqué y después de ejecutar tsc no mostró ningún error en la terminal, pero todavía recibía esa línea ondulada de lectura en VSCode. Así que reinicié el servidor de TypeScript en vscode ( Typescript: Restart TS Server ) y desapareció. Espero que ayude a alguien.

@ninjavang, ¡me ayudaste! Tuve el mismo problema con mi canalización gitlab ci / cd. Resulta que cuando fui a la sucursal remota y verifiqué la ruta del archivo, había dos versiones del archivo, cada una en su versión sensible a mayúsculas y minúsculas.

Eliminé la versión no deseada en el control remoto, copié el archivo localmente, bajé el control remoto, actualicé mi código VS y volví a agregar el archivo. ¡Funcionó!

¡Gracias por la ayuda!

¿Fue útil esta página
0 / 5 - 0 calificaciones