Questa è una restrizione speciale aggiunta dagli sviluppatori di create -eagire-app. È implementato ModuleScopePluginper garantire che i file risiedano in src/. Tale plug-in garantisce che le importazioni relative dalla directory di origine dell'app non raggiungano al di fuori di essa.
È possibile disabilitare questa funzione ma solo dopo l' ejectoperazione del progetto create -eagire-app.
La maggior parte delle funzionalità e dei suoi aggiornamenti sono nascosti all'interno del sistema create -eagire-app. Se lo fai ejectnon avrai più alcune funzionalità e il suo aggiornamento. Pertanto, se non si è pronti a gestire e configurare l'applicazione inclusa per configurare il webpack e così via, non eseguire ejectoperazioni.
Gioca secondo le regole esistenti (passa a SRC). Ma ora si può sapere come rimuovere restrizione: fare ejecte rimuovere ModuleScopePlugindal file di configurazione webpack .
Dal momento che create -eagire -app v0.4.0 la NODE_PATHvariabile di ambiente consente di specificare un percorso per l'importazione assoluta. E poiché v3.0.0 NODE_PATH è deprecato a favore dell'impostazione baseUrlin jsconfig.jsono tsconfig.json.
L'importazione assoluta consente l'utilizzo import App from 'App'invece import App from './App'rispetto al valore specificato nell'URL di base.
Questa funzione è particolarmente utile per i monorepos o altre domande di configurazione ma non per l'importazione di immagini o altro dalla publiccartella.
Il contenuto della publiccartella verrà inserito nella buildcartella e disponibile tramite l'URL relativo. Inoltre, tutto ciò che viene importato verrà elaborato dal webpack e verrà inserito anche nella buildcartella.
Se importi qualcosa dalla publiccartella, probabilmente quell'elemento verrà duplicato nella buildcartella e sarà disponibile con due URL diversi (o con modi diversi di caricare), che alla fine peggioreranno le dimensioni del download del pacchetto.
È preferibile importare dalla cartella src e presenta vantaggi. Tutto sarà imballato dal webpack in bundle con pezzi di dimensioni ottimali e per la migliore efficienza di caricamento .
Esistono soluzioni intermedie, vale a dire il sistema rewire che consente di modificare a livello di programmazione la configurazione del webpack. Ma rimuovere il ModuleScopePluginplugin non è una buona soluzione; è meglio aggiungere directory aggiuntive perfettamente funzionanti simili a src.
Attualmente, create-react-appnon supporta directory aggiuntive se non srcnella cartella principale. Questo può essere fatto usando alias reatt-app-rewire-alias
../public/images/logo_2016.pngSei salito due volte, prima fuori dalla cartella dei componenti, quindi dalla cartella src.