คำสั่ง“ react-scripts eject” ทำอะไร?


115

อะไรnpm run ejectคำสั่งทำอย่างไร ฉันเข้าใจคำสั่งอื่น ๆ เช่น start, build, test แต่ไม่มีความคิดเกี่ยวกับการดีดออก


2
วิธีตรวจสอบ / ตรวจสอบคำสั่งนี้ใช้หรือไม่?
AlexNikonov

คำตอบ:


168

create-react-app จะห่อหุ้มโมดูล npm ทั้งหมดที่ใช้ภายในดังนั้น package.json ของคุณจะสะอาดและเรียบง่ายโดยที่คุณไม่ต้องกังวล

อย่างไรก็ตามหากคุณต้องการเริ่มทำสิ่งที่ซับซ้อนมากขึ้นและติดตั้งโมดูลที่อาจโต้ตอบกับโมดูลที่สร้าง - ตอบสนอง - แอปกำลังใช้งานอยู่ภายใต้ประทุนโมดูลใหม่เหล่านั้นจำเป็นต้องรู้ว่ามีอะไรบ้างและไม่ได้หมายความว่าคุณต้องมีการสร้างปฏิกิริยา -app ยกเลิกนามธรรมพวกเขา

ในสาระสำคัญคือสิ่งที่react-scripts ejectทำ มันจะหยุดซ่อนสิ่งที่ติดตั้งไว้ใต้ฝากระโปรงและนำสิ่งเหล่านั้นออกไปใน package.json ของโปรเจ็กต์ของคุณแทนเพื่อให้ทุกคนเห็น


3
คำตอบของ @Sergii แม่นยำกว่า Eject ไม่เพียง แต่เกี่ยวกับโมดูล package.json และ NPM เท่านั้น แต่ยังรวมถึงสิ่งอื่น ๆ ด้วย (babel, webpack, eslint ฯลฯ ) github.com/facebook/create-react-app/blob/master/packages/…
Bruno Monteiro

73
npm run eject

หมายเหตุ: นี่เป็นการดำเนินการทางเดียว เมื่อคุณejectกลับไปไม่ได้!

หากคุณไม่พอใจกับเครื่องมือสร้างและตัวเลือกการกำหนดค่าคุณสามารถทำได้ejectทุกเมื่อ คำสั่งนี้จะลบการพึ่งพาบิวด์เดี่ยวออกจากโปรเจ็กต์ของคุณ

แต่จะคัดลอกไฟล์คอนฟิกูเรชันทั้งหมดและการอ้างอิงสกรรมกริยา (Webpack, Babel, ESLint ฯลฯ ) ลงในโปรเจ็กต์ของคุณโดยตรงเพื่อให้คุณสามารถควบคุมได้อย่างเต็มที่ คำสั่งทั้งหมดยกเว้นejectจะยังคงใช้งานได้ แต่จะชี้ไปที่สคริปต์ที่คัดลอกมาเพื่อให้คุณปรับแต่งได้ ณ จุดนี้คุณอยู่คนเดียว

ejectคุณจะได้ไม่ต้องใช้เลยทีเดียว ชุดคุณลักษณะที่ได้รับการดูแลเหมาะสำหรับการใช้งานขนาดเล็กและระดับกลางและคุณไม่ควรรู้สึกว่าจำเป็นต้องใช้คุณลักษณะนี้ อย่างไรก็ตามเราเข้าใจว่าเครื่องมือนี้จะไม่มีประโยชน์หากคุณไม่สามารถปรับแต่งได้เมื่อคุณพร้อม

ลิงค์ไปยังเอกสาร


ทางเลือกในการขับออก

การดีดออกช่วยให้คุณสามารถปรับแต่งอะไรก็ได้ แต่จากจุดนั้นคุณต้องรักษาการกำหนดค่าและสคริปต์ด้วยตัวคุณเอง อาจเป็นเรื่องที่น่ากลัวหากคุณมีโครงการที่คล้ายกันหลายโครงการ ในกรณีเช่นนี้แทนที่จะนำออกเราขอแนะนำให้แยกชิ้นส่วนreact-scriptsและหีบห่ออื่น ๆ ที่คุณต้องการ บทความนี้เจาะลึกวิธีทำแบบเจาะลึก คุณสามารถค้นหาการสนทนาเพิ่มเติมได้ในฉบับนี้


เราสามารถกลับไปใช้การเพิ่มอีกครั้งnpm install react-scripts
Ashish Kamble

ฉันไม่พอใจอย่างมากกับทั้งสองวิธีนี้ คุณมีการพึ่งพาในสมัยโบราณโดยไม่มีเหตุผลชัดเจน วิธีการทั้งสองซ่อนปัญหาเหล่านี้และความพยายามในการพัฒนาที่ไม่โฟกัสจากโครงการไปสู่รหัสทางตัน ไม่มีสิ่งทดแทนสำหรับการจัดการการพึ่งพาที่เหมาะสม
ÁrpádMagosányi

ถ้าโปรแกรม create-react-app เป็นเวอร์ชันโดย Git เราสามารถย้อนกลับโดยชำระเงิน / รีเซ็ตการเปลี่ยนแปลงได้หรือไม่
Dendi Handian

0

มีแพ็คเกจที่อนุญาตให้ปรับแต่งโดยไม่ต้องดีดออกโดยทำหน้าที่เหมือนตัวกลางระหว่างสคริปต์ตอบสนองและการปรับแต่งของคุณ:

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.