Ini adalah batasan khusus yang ditambahkan oleh pengembang aplikasi create-react-app. Ini diterapkan ModuleScopePlugin
untuk memastikan file berada src/
. Plugin itu memastikan bahwa impor relatif dari direktori sumber aplikasi tidak mencapai di luarnya.
Anda dapat menonaktifkan fitur ini tetapi hanya setelah eject
operasi proyek create-react-app.
Sebagian besar fitur dan pembaruannya disembunyikan di bagian dalam sistem create-react-app. Jika Anda membuatnya, eject
Anda tidak akan lagi memiliki beberapa fitur dan pembaruannya. Jadi jika Anda belum siap untuk mengelola dan mengkonfigurasi aplikasi yang disertakan untuk mengkonfigurasi webpack dan sebagainya - jangan lakukan eject
operasi.
Mainkan dengan aturan yang ada (pindahkan ke src). Tapi sekarang Anda bisa tahu cara menghapus pembatasan: lakukan eject
dan hapus ModuleScopePlugin
dari file konfigurasi webpack .
Sejak membuat-bereaksi-aplikasi v0.4.0 yang NODE_PATH
variabel lingkungan memungkinkan untuk menentukan path untuk impor mutlak. Dan sejak v3.0.0 NODE_PATH
tidak digunakan lagi karena pengaturan baseUrl
pada jsconfig.json
atau tsconfig.json
.
Impor absolut memungkinkan penggunaan import App from 'App'
alih - alih import App from './App'
relatif terhadap nilai yang ditentukan dalam url basis.
Fitur ini secara khusus berguna untuk monorepos atau pertanyaan konfigurasi lain tetapi tidak untuk mengimpor gambar atau apa pun dari public
folder.
Isi dari public
folder akan ditempatkan di build
folder dan tersedia dengan url relatif. Juga, semua yang diimpor akan diproses oleh webpack dan akan ditempatkan juga di build
folder.
Jika Anda mengimpor sesuatu dari public
folder mungkin benda itu akan diduplikasi dalam build
folder dan akan tersedia oleh dua url yang berbeda (atau dengan berbagai cara memuat), yang pada akhirnya memperburuk ukuran unduhan paket.
Mengimpor dari folder src lebih disukai dan memiliki kelebihan. Semuanya akan dikemas oleh webpack ke bundel dengan potongan ukuran optimal dan untuk efisiensi pemuatan terbaik .
Ada solusi perantara, yaitu sistem rewire yang memungkinkan Anda untuk memodifikasi konfigurasi webpack secara terprogram. Tapi menghapus yang ModuleScopePlugin
Plugin tidak baik sebuah solusi; lebih baik menambahkan direktori tambahan yang berfungsi penuh seperti src
.
Saat ini, create-react-app
tidak mendukung direktori tambahan selain src
di folder root. Ini dapat dilakukan dengan menggunakan react-app-rewire-alias
../public/images/logo_2016.png
Anda naik dua kali, pertama keluar dari folder komponen, lalu keluar dari folder src.