Jest to specjalne ograniczenie dodane przez twórców aplikacji create-react-app. Jest zaimplementowany wModuleScopePlugin aby zapewnić, że pliki znajdują się w src/. Ta wtyczka zapewnia, że względne importy z katalogu źródłowego aplikacji nie sięgają poza nią.
Możesz wyłączyć tę funkcję, ale dopiero później eject uruchomieniu projektu create-re-app.
Większość funkcji i ich aktualizacje jest ukryta w wewnętrznych elementach systemu tworzenia i reagowania. Jeśli sprawisz, że ejectnie będziesz już mieć niektórych funkcji i ich aktualizacji. Więc jeśli nie jesteś gotowy do zarządzania i konfigurowania dołączonej aplikacji do konfigurowania webpacka i tak dalej - nie wykonuj ejectoperacji.
Graj według istniejących zasad (przejdź do źródła). Ale teraz możesz już wiedzieć, jak usunąć ograniczenie: zrób ejecti usuń ModuleScopePluginz pliku konfiguracyjnego pakietu internetowego .
Ponieważ tworzenie reagują app v0.4.0 o NODE_PATHzmiennej środowiska pozwala określić drogę absolutnej importu. A ponieważ wersja 3.0.0 NODE_PATH jest przestarzała, na korzyść ustawienia baseUrlw jsconfig.jsonlub tsconfig.json.
Bezwzględny import umożliwia użycie import App from 'App'zamiast tego import App from './App'względem wartości określonej w podstawowym adresie URL.
Ta funkcja jest szczególnie przydatna w przypadku monorepos lub innych pytań konfiguracyjnych, ale nie do importowania obrazów lub czegokolwiek innego z publicfolderu.
Zawartość publicfolderu zostanie umieszczona wbuild folderze i będzie dostępna według względnego adresu URL. Ponadto wszystko zaimportowane zostanie przetworzone przez webpack i zostanie również umieszczone w buildfolderze.
Jeśli zaimportujesz coś z publicfolderu, prawdopodobnie zostanie to zduplikowane w plikubuild folderze i będzie dostępne pod dwoma różnymi adresami URL (lub różnymi sposobami ładowania), co ostatecznie pogorszy rozmiar pobieranego pakietu.
Importowanie z folderu src jest preferowane i ma zalety. Wszystko zostanie zapakowane w paczkę internetową do pakietu z kawałkami o optymalnym rozmiarze i dla najlepszej wydajności ładowania .
Istnieją rozwiązania pośrednie, a mianowicie system rewire , który pozwala programowo modyfikować konfigurację webpacka. Ale usunięcie ten ModuleScopePluginplugin nie jest dobry rozwiązaniem; lepiej jest dodać w pełni działające dodatkowe katalogi podobne do src.
Obecnie create-react-appnie obsługuje dodatkowych katalogów poza srcfolderem głównym. Można to zrobić za pomocą reagowania na alias aplikacji-rewire
../public/images/logo_2016.pngdwukrotnie przejść do góry, najpierw z folderu komponentów, a następnie z folderu src.