Questa è una restrizione speciale aggiunta dagli sviluppatori di create -eagire-app. È implementato ModuleScopePlugin
per 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' eject
operazione 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 eject
non 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 eject
operazioni.
Gioca secondo le regole esistenti (passa a SRC). Ma ora si può sapere come rimuovere restrizione: fare eject
e rimuovere ModuleScopePlugin
dal file di configurazione webpack .
Dal momento che create -eagire -app v0.4.0 la NODE_PATH
variabile di ambiente consente di specificare un percorso per l'importazione assoluta. E poiché v3.0.0 NODE_PATH
è deprecato a favore dell'impostazione baseUrl
in jsconfig.json
o 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 public
cartella.
Il contenuto della public
cartella verrà inserito nella build
cartella e disponibile tramite l'URL relativo. Inoltre, tutto ciò che viene importato verrà elaborato dal webpack e verrà inserito anche nella build
cartella.
Se importi qualcosa dalla public
cartella, probabilmente quell'elemento verrà duplicato nella build
cartella 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 ModuleScopePlugin
plugin non è una buona soluzione; è meglio aggiungere directory aggiuntive perfettamente funzionanti simili a src
.
Attualmente, create-react-app
non supporta directory aggiuntive se non src
nella cartella principale. Questo può essere fatto usando alias reatt-app-rewire-alias
../public/images/logo_2016.png
Sei salito due volte, prima fuori dalla cartella dei componenti, quindi dalla cartella src.