es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El repositorio que trabaja con submódulos de git está causando que eslint busque en el directorio equivocado.

Comencé un nuevo proyecto e intenté usar submódulos de Git para separar el servidor, el cliente y otros recursos en sus propios repositorios, mientras que uso un repositorio principal para alojar el archivo dev.docker-compose-yaml, docker-compose.yaml, el sitio estático y otros recursos.

(Esto podría estar usando submódulos de manera incorrecta, así que corríjanme si estoy equivocado)

La estructura del proyecto se ve así:

Imagen

El cliente es React, el servidor es Nest. Cada uno contiene su propio Dockerfile que se construye mediante dev.docker.compose.yaml. La aplicación funciona correctamente, pero eslint está arrojando un error:

Error de análisis: No se puede leer el archivo 'c:\users\<user>\programing\projects\<thing>\tsconfig.json'. eslint [1, 1]

La ruta correcta del archivo que está buscando es:

'c:\users\<user>\programing\projects\<thing>\**server**\tsconfig.json'

¿Hay alguna manera de corregir esto? ¿Debo evitar usar submódulos de esta manera?

Gracias.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Una solución para corregir el error de eslint es agregar la ruta correcta a cada archivo tsconfig.json individual en los submódulos del cliente y del servidor. Dado que el submódulo del servidor tiene su propio archivo tsconfig.json, no puede encontrarse en el repositorio principal, lo que causa el error.

    Para agregar la ruta correcta, edita el archivo tsconfig.json en cada submódulo agregando las propiedades baseUrl y paths al objeto compilerOptions. El baseUrl debe ser la ruta desde el directorio del submódulo hasta la raíz del proyecto, y los paths deben incluir la ruta a los directorios de los submódulos. Por ejemplo, en el archivo tsconfig.json del submódulo del servidor, las propiedades se verían así:

    "compilerOptions": {
      "baseUrl": "..",
      "paths": {
        "@server/*": ["src/*"]
      }
    }
    

    En el archivo tsconfig.json del submódulo del cliente, la propiedad paths sería:

    "paths": {
      "@client/*": ["src/*"]
    }
    

    Luego, actualiza las declaraciones de import en tu código para utilizar las nuevas rutas en lugar de las rutas relativas. Por ejemplo, en lugar de import {...} from '../../server/file', utiliza import {...} from '@server/file'.

    Esto debería solucionar el error de eslint y permitir que tus submódulos funcionen correctamente.

    En cuanto a si esta es la mejor solución o no, depende de las necesidades específicas de tu proyecto. El uso de submódulos de git puede ser una forma útil de separar recursos en sus propios repositorios, pero también puede agregar complejidad a la estructura y configuración del proyecto. Es importante evaluar los beneficios y desventajas y determinar si es la mejor solución para tu caso de uso.

Comments are closed.