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 eject
nie 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 eject
operacji.
Graj według istniejących zasad (przejdź do źródła). Ale teraz możesz już wiedzieć, jak usunąć ograniczenie: zrób eject
i usuń ModuleScopePlugin
z pliku konfiguracyjnego pakietu internetowego .
Ponieważ tworzenie reagują app v0.4.0 o NODE_PATH
zmiennej środowiska pozwala określić drogę absolutnej importu. A ponieważ wersja 3.0.0 NODE_PATH
jest przestarzała, na korzyść ustawienia baseUrl
w jsconfig.json
lub 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 public
folderu.
Zawartość public
folderu 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 build
folderze.
Jeśli zaimportujesz coś z public
folderu, 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 ModuleScopePlugin
plugin nie jest dobry rozwiązaniem; lepiej jest dodać w pełni działające dodatkowe katalogi podobne do src
.
Obecnie create-react-app
nie obsługuje dodatkowych katalogów poza src
folderem głównym. Można to zrobić za pomocą reagowania na alias aplikacji-rewire
../public/images/logo_2016.png
dwukrotnie przejść do góry, najpierw z folderu komponentów, a następnie z folderu src.