Esta es una restricción especial agregada por los desarrolladores de create-react-app. Se implementa ModuleScopePlugin
para garantizar que los archivos residan src/
. Ese complemento garantiza que las importaciones relativas del directorio de origen de la aplicación no lleguen fuera de él.
Puede deshabilitar esta función, pero solo después de la eject
operación del proyecto create-react-app.
La mayoría de las funciones y sus actualizaciones están ocultas en las partes internas del sistema create-react-app. Si lo hace eject
, ya no tendrá algunas características y su actualización. Entonces, si no está listo para administrar y configurar la aplicación incluida para configurar el paquete web, etc., no realice la eject
operación.
Juega según las reglas existentes (muévete a src). Pero ahora puede saber cómo eliminar la restricción: hacer eject
y eliminar ModuleScopePlugin
del archivo de configuración del paquete web .
Desde create-react-app v0.4.0, la NODE_PATH
variable de entorno permite especificar una ruta para la importación absoluta. Y desde v3.0.0 NODE_PATH
está en desuso a favor de establecer baseUrl
en jsconfig.json
o tsconfig.json
.
La importación absoluta permite usar en import App from 'App'
lugar import App from './App'
del valor especificado en la URL base.
Esta característica es específicamente útil para monorepos u otras preguntas de configuración, pero no para importar imágenes o cualquier otra cosa desde la public
carpeta.
El contenido de la public
carpeta se colocará en la build
carpeta y estará disponible por URL relativa. Además, todo lo importado será procesado por webpack y se colocará también en la build
carpeta.
Si importa algo de la public
carpeta, probablemente esa cosa se duplicará en la build
carpeta y estará disponible por dos URL diferentes (o con diferentes formas de carga), lo que finalmente empeorará el tamaño de descarga del paquete.
Importar desde la carpeta src es preferible y tiene ventajas. Todo será empaquetado por paquete web con el paquete con trozos de tamaño óptimo y para la mejor eficiencia de carga .
Hay soluciones intermedias, a saber, el sistema de cableado que le permite modificar mediante programación la configuración del paquete web. Pero eliminar el ModuleScopePlugin
complemento no es una buena solución; es mejor agregar directorios adicionales totalmente funcionales similares a src
.
Actualmente, create-react-app
no admite directorios adicionales que no sean src
en la carpeta raíz. Esto se puede hacer usando react-app-rewire-alias
../public/images/logo_2016.png
Subiste dos veces, primero fuera de la carpeta de componentes, luego fuera de la carpeta src.