Apa yang dilakukan perintah "react-scripts eject" ini?

108

Apa yang dilakukan npm run ejectperintah itu? Saya mengerti apa yang dilakukan perintah lain seperti start, build, test. Tapi tidak tahu tentang eject.

Ishan Patel
sumber
2
bagaimana cara memeriksa / memverifikasi apakah perintah ini diterapkan atau tidak?
AlexNikonov

Jawaban:

160

create-react-app merangkum semua modul npm yang digunakannya secara internal, sehingga package.json Anda akan sangat bersih dan sederhana tanpa Anda harus mengkhawatirkannya.

Namun, jika Anda ingin mulai melakukan hal-hal yang lebih kompleks dan menginstal modul yang dapat berinteraksi dengan modul create-react-app digunakan di bawah tenda, modul baru tersebut perlu mengetahui apa yang tersedia dan tidak, yang berarti Anda harus memiliki create-react. -app hapus abstrak mereka.

Itu, pada dasarnya, itulah yang react-scripts ejectdilakukannya. Itu akan berhenti menyembunyikan apa yang telah dipasang di bawah tenda dan sebagai gantinya mengeluarkan hal-hal itu ke dalam package.json proyek Anda untuk dilihat semua orang.

casieber.dll
sumber
3
Jawaban @Sergii lebih akurat. Eject tidak hanya tentang modul package.json dan NPM, tetapi juga mencakup hal-hal lain (babel, webpack, eslint, dll.) Github.com/facebook/create-react-app/blob/master/packages/…
Bruno Monteiro
69
npm run eject

Catatan: ini adalah operasi satu arah. Begitu Anda eject, Anda tidak bisa kembali!

Jika Anda tidak puas dengan fitur build dan pilihan konfigurasi, Anda dapat melakukannya ejectkapan saja. Perintah ini akan menghapus dependensi build tunggal dari proyek Anda.

Sebaliknya, ini akan menyalin semua file konfigurasi dan dependensi transitif (Webpack, Babel, ESLint, dll) langsung ke proyek Anda sehingga Anda memiliki kontrol penuh atas mereka. Semua perintah kecuali ejectakan tetap berfungsi, tetapi mereka akan mengarah ke skrip yang disalin sehingga Anda dapat menyesuaikannya. Pada titik ini Anda sendirian.

Anda tidak harus pernah menggunakan eject. Kumpulan fitur yang dikurasi cocok untuk penerapan kecil dan menengah, dan Anda tidak perlu merasa wajib untuk menggunakan fitur ini. Namun kami memahami bahwa alat ini tidak akan berguna jika Anda tidak dapat menyesuaikannya saat Anda siap.

tautan ke dokumentasi


Alternatif untuk Mengeluarkan

Mengeluarkan memungkinkan Anda menyesuaikan apa pun, tetapi sejak saat itu Anda harus mempertahankan konfigurasi dan skrip sendiri. Ini bisa menakutkan jika Anda memiliki banyak proyek serupa. Dalam kasus seperti itu, alih-alih mengeluarkan, kami merekomendasikan untuk fork react-scriptsdan paket lain yang Anda butuhkan. Artikel ini membahas cara melakukannya secara mendalam. Anda dapat menemukan lebih banyak diskusi dalam masalah ini.

Sergii
sumber
kita bisa kembali menggunakan menambahkan laginpm install react-scripts
Ashish Kamble
Saya sangat tidak puas dengan kedua pendekatan ini. Anda memiliki ketergantungan kuno tanpa alasan yang jelas. Kedua pendekatan menyembunyikan masalah ini dan mengalihkan upaya pengembangan dari proyek ke kode jalan buntu. Tidak ada pengganti untuk manajemen ketergantungan yang tepat.
Árpád Magosányi