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.

React no puede resolver archivos .tsx

Hice un nuevo proyecto de React utilizando npx create-react-app nombre-proyecto --template typescript y funcionó bien hasta que importé otro archivo .tsx. Ahora cuando intento importar otro archivo .tsx me da un error: Módulo no encontrado: Error: No se puede resolver './components/component' en '/Users/benbaldwin/Desktop/project/frontend/teacher/src'

Lo único que estoy haciendo de manera diferente a lo normal es la estructura de archivos. Dado que tengo varios proyectos de React en la carpeta frontend que comparten dependencias, moví la carpeta node_modules para cubrir todos esos subdirectorios. Mi estructura de archivos se ve así:


- frontend
- node_modules
- project-1
- public
- src
index.tsx
react-app-env.d.ts
- components
component.tsx
- project-2
package.json
tsconfig.json

El archivo del componente se ve así:

import React from 'react';

const Component: React.FC = () => {
    return <div>hello</div>;
};

export default Component;

Y el archivo index se ve así:

import React from 'react';
import ReactDOM from 'react-dom';
import Component from './components/component';
import './index.css';

ReactDOM.render(
    <react.strictmode>
        <component></component>
    </react.strictmode>,
    document.querySelector('#root')
);

¿Necesito ejectar create-react-app y escribir mi propia configuración de Webpack o hay una mejor manera de solucionar esto?

El código fuente completo se encuentra en mi GitHub: https://github.com/baldwin-dev-co/mountaineer

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El problema que estás enfrentando parece estar relacionado con la ruta del archivo para el componente importado. Según el mensaje de error, la declaración de importación está tratando de buscar el componente en la ruta ‘./components/component’, pero no puede encontrarlo.

    Según la estructura de archivos proporcionada, parece que la ruta correcta para el componente importado debería ser ‘../../components/component’.

    Puedes intentar modificar el archivo de índice para importar correctamente el componente de esta manera:

    import React from 'react';
    import ReactDOM from 'react-dom';
    import Component from '../../components/component';
    import './index.css';
    
    ReactDOM.render(
        <react.strictmode>
            <component></component>
        </react.strictmode>,
        document.querySelector('#root')
    );
    

    Si esto todavía no funciona, puedes verificar si el archivo del componente está ubicado en el directorio correcto y si el nombre del archivo es correcto (respetando mayúsculas y minúsculas).

    En cuanto a la expulsión de create-react-app, no es necesario para este problema. No se recomienda administrar la carpeta node_modules en diferentes subdirectorios dentro de la carpeta frontend, ya que podría generar otros problemas en el futuro. Es mejor tener carpetas separadas de node_modules para cada proyecto.

    ¡Espero que esto ayude!

Comments are closed.