Lệnh "phản ứng-script eject" này làm gì?


106

Không những gì npm run ejectlệnh làm gì? Tôi hiểu những lệnh khác làm như start, build, test. Nhưng không có ý tưởng về việc đẩy ra.


2
làm thế nào để kiểm tra / xác minh rằng lệnh này đã được áp dụng hay chưa?
AlexNikonov

Câu trả lời:


156

create-react-app đóng gói tất cả các mô-đun npm mà nó đang sử dụng bên trong, vì vậy package.json của bạn sẽ rất sạch sẽ và đơn giản mà bạn không cần phải lo lắng về nó.

Tuy nhiên, nếu bạn muốn bắt đầu làm những việc phức tạp hơn và cài đặt các mô-đun có thể tương tác với các mô-đun mà ứng dụng tạo-phản ứng đang sử dụng ẩn, thì những mô-đun mới đó cần biết những gì có sẵn và không, nghĩa là bạn cần phải tạo phản ứng -app bỏ trừu tượng chúng.

Đó, về bản chất, là những gì react-scripts eject. Nó sẽ ngừng ẩn những gì nó đã được cài đặt dưới mui xe và thay vào đó đẩy những thứ đó vào package.json của dự án cho mọi người xem.


2
@Sergii câu trả lời là chính xác hơn. Eject không chỉ về các mô-đun package.json và NPM, nó bao gồm những thứ khác (babel, webpack, eslint, v.v.) github.com/facebook/create-react-app/blob/master/packages/…
Bruno Monteiro

67
npm run eject

Lưu ý: đây là thao tác một chiều. Một khi bạn eject, bạn không thể quay trở lại!

Nếu bạn không hài lòng với các lựa chọn cấu hình và công cụ xây dựng, bạn có thể thực hiện ejectbất cứ lúc nào. Lệnh này sẽ xóa phần phụ thuộc bản dựng duy nhất khỏi dự án của bạn.

Thay vào đó, nó sẽ sao chép tất cả các tệp cấu hình và các phụ thuộc bắc cầu (Webpack, Babel, ESLint, v.v.) ngay vào dự án của bạn để bạn có toàn quyền kiểm soát chúng. Tất cả các lệnh ngoại trừ ejectsẽ vẫn hoạt động, nhưng chúng sẽ trỏ đến các tập lệnh đã sao chép để bạn có thể chỉnh sửa chúng. Tại thời điểm này, bạn là của riêng bạn.

Bạn không cần phải sử dụng eject. Bộ tính năng được sắp xếp phù hợp với các triển khai vừa và nhỏ và bạn không nên bắt buộc phải sử dụng tính năng này. Tuy nhiên, chúng tôi hiểu rằng công cụ này sẽ không hữu ích nếu bạn không thể tùy chỉnh nó khi bạn đã sẵn sàng.

liên kết đến tài liệu


Các lựa chọn thay thế cho Ejjection

Việc loại bỏ cho phép bạn tùy chỉnh mọi thứ, nhưng từ thời điểm đó, bạn phải tự duy trì cấu hình và tập lệnh. Điều này có thể gây khó khăn nếu bạn có nhiều dự án tương tự. Trong những trường hợp như vậy thay vì loại bỏ, chúng tôi khuyên bạn nên fork react-scriptsvà bất kỳ gói nào khác mà bạn cần. Bài viết này đi sâu vào cách làm điều đó. Bạn có thể tìm thêm thảo luận trong vấn đề này.


chúng ta có thể quay lại bằng cách thêm lạinpm install react-scripts
Ashish Kamble

Tôi hoàn toàn không hài lòng với cả hai cách tiếp cận này. Bạn có những phụ thuộc cổ xưa mà không có lý do rõ ràng. Cả hai cách tiếp cận đều ẩn những vấn đề này và làm mất tập trung các nỗ lực phát triển từ dự án sang mã dead-end. Không có gì thay thế cho việc quản lý phụ thuộc thích hợp.
Árpád Magosányi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.