webpack · npm
El mensaje
Module not found: Error: Can't resolve './components/Button' in '/app/src'
Qué significa
El empaquetador no encontró ese archivo en esa ruta: esto es tu propio import, no un paquete. Pasa cuando la ruta relativa está desviada un nivel, cuando falta la extensión o es incorrecta, o cuando las mayúsculas del nombre del archivo difieren del import. Lo último es lo más traicionero: los sistemas de archivos de macOS y Windows no distinguen mayúsculas, así que funciona en tu máquina y solo se rompe en el CI de Linux. Haz ls del directorio y compáralo con el import carácter a carácter, mayúsculas incluidas. Si el nombre es un paquete y no una ruta, instálalo; en ningún caso se borra nada.
El arreglo
No hay un comando de una línea. La explicación dice qué revisar.
- Lo imprime
- webpack
- npm
- 20
En npm la causa está en la primera línea code XXXX y no en las seis últimas líneas npm ERR!, y cuando el fallo viene del árbol de dependencias o de una compilación nativa y no de tu código, borrar node_modules y reinstalar resuelve la mitad de los casos.
Cómo leer un mensaje de error
- Lee desde la primera línea. Cuanto más abajo, más son las tripas de la herramienta; la causa suele estar arriba.
- Si hay un archivo y un número de línea, empieza ahí: no el marco superior de la pila, sino la línea más alta que nombre un archivo tuyo.
- Busca el mensaje literal, pero quita antes tus rutas y nombres de variables: eso es lo que impide que la búsqueda coincida.
- La misma condición se redacta distinto según la versión. Si los resultados no cuadran, añade el número de versión.
- Antes de pegar un arreglo, comprueba qué descarta. Algunos no se pueden deshacer.
Preguntas frecuentes
Q. ¿Qué significa «Module not found: Error: Can't resolve './components/Button' in '/app/src'»?
El empaquetador no encontró ese archivo en esa ruta: esto es tu propio import, no un paquete. Pasa cuando la ruta relativa está desviada un nivel, cuando falta la extensión o es incorrecta, o cuando las mayúsculas del nombre del archivo difieren del import. Lo último es lo más traicionero: los sistemas de archivos de macOS y Windows no distinguen mayúsculas, así que funciona en tu máquina y solo se rompe en el CI de Linux. Haz ls del directorio y compáralo con el import carácter a carácter, mayúsculas incluidas. Si el nombre es un paquete y no una ruta, instálalo; en ningún caso se borra nada.
Q. ¿Cómo se arregla?
No hay comando de una línea. La explicación de arriba dice qué revisar.
Q. ¿Qué herramienta lo imprime?
webpack. Está en npm y el mensaje tiene 9 palabras.