Dies ist eine spezielle Einschränkung, die von Entwicklern der Create-React-App hinzugefügt wurde. Es wird implementiert, ModuleScopePluginum sicherzustellen, dass sich Dateien in befinden src/. Dieses Plugin stellt sicher, dass relative Importe aus dem Quellverzeichnis der App nicht außerhalb davon gelangen.
Sie können diese Funktion deaktivieren, jedoch erst nach dem ejectAusführen des Projekts "App erstellen, reagieren, App".
Die meisten Funktionen und deren Updates sind in den Interna des Create-React-App-Systems verborgen. Wenn Sie machen, werden ejectSie einige Funktionen und deren Update nicht mehr haben. Wenn Sie also nicht bereit sind, die mitgelieferte Anwendung zum Konfigurieren von Webpack usw. zu verwalten und zu konfigurieren, führen Sie keine ejectOperation aus.
Spielen Sie nach den bestehenden Regeln (gehen Sie zu src). Aber jetzt können Sie wissen , wie Einschränkung zu entfernen: tun , ejectund entfernen Sie ModuleScopePluginaus webpack Konfigurationsdatei .
Seit create-react-app v0.4.0 kann mit der NODE_PATHUmgebungsvariablen ein Pfad für den absoluten Import angegeben werden. Und da v3.0.0 NODE_PATH zugunsten der Einstellung baseUrlin jsconfig.jsonoder veraltet ist tsconfig.json.
Beim absoluten Import kann import App from 'App'stattdessen import App from './App'relativ zum in der Basis-URL angegebenen Wert verwendet werden.
Diese Funktion ist besonders nützlich für Monorepos oder andere Konfigurationsfragen, jedoch nicht zum Importieren von Bildern oder anderen Elementen aus Ordnern public.
Der Inhalt des publicOrdners wird im buildOrdner abgelegt und ist über die relative URL verfügbar. Außerdem wird alles, was importiert wird, per Webpack verarbeitet und auch in einem buildOrdner abgelegt .
Wenn Sie etwas aus einem publicOrdner importieren , wird dieses Ding wahrscheinlich im buildOrdner dupliziert und ist über zwei verschiedene URLs (oder mit verschiedenen Möglichkeiten zum Laden) verfügbar, was letztendlich die Downloadgröße des Pakets verschlechtert.
Der Import aus dem src- Ordner ist vorzuziehen und hat Vorteile. Alles wird per Webpack in das Bündel gepackt, wobei die Brocken die optimale Größe und die beste Ladeeffizienz aufweisen .
Es gibt Zwischenlösungen, nämlich das Rewire- System, mit dem Sie die Webpack-Konfiguration programmgesteuert ändern können. Das Entfernen des ModuleScopePluginPlugins ist jedoch keine gute Lösung. Es ist besser, voll funktionsfähige zusätzliche Verzeichnisse hinzuzufügen, die denen ähneln src.
Derzeit werden create-react-appkeine weiteren Verzeichnisse als srcim Stammordner unterstützt. Dies kann mit dem React-App-Rewire-Alias erfolgen
../public/images/logo_2016.pngzweimal nach oben gegangen sein, zuerst aus dem Komponentenordner, dann aus dem src-Ordner.