ฉันไม่แน่ใจ 100% ในแง่บวก นี่คือข้อเสียเล็กน้อย
บ่อยครั้งที่คุณต้องเพิ่มการอ้างอิงไปยังเซิร์ฟเวอร์ / ปลายทางของบุคคลที่สามที่อาจไม่เสถียร
ฉันเคยเกิดขึ้นกับ bower ที่ repo ของการอ้างอิงบางอย่างถูกลบหรือย้าย ดังนั้นผู้พัฒนารายใหม่จึงเข้ามาเลียนแบบ repo ของฉันพิมพ์
bower install
และรับข้อผิดพลาดสำหรับ repos ที่ไม่สามารถเข้าถึงได้ หากฉันได้ตรวจสอบในรหัสบุคคลที่สามลงใน repo ของฉันว่าปัญหาหายไป
สิ่งนี้ได้รับการแก้ไขเช่นเดียวกับ OP หากคุณดึง deps จากสำเนาที่เก็บไว้ในเซิร์ฟเวอร์ที่คุณใช้
ยากสำหรับ noobs
ฉันทำงานกับนักเรียนศิลปะที่มีประสบการณ์น้อยมาก พวกเขาสร้างงานศิลปะด้วย Processing, arduino, Unity3D และได้รับความรู้ด้านเทคโนโลยีน้อยมาก พวกเขาต้องการใช้ HTML5 / JavaScript ที่ฉันเขียน ขั้นตอนเพราะความร่มรื่น
- ดาวน์โหลด Zip of repo จาก GitHub (สังเกตว่าอยู่ด้านขวาของทุก repo บน GitHub เพราะพวกเขาไม่รู้ Git)
- ดาวน์โหลดและติดตั้งโหนด (เพื่อให้เราสามารถเรียกใช้ npm เพื่อติดตั้ง bower)
- ติดตั้ง git หรือ msysgit (เนื่องจาก bower ต้องการและไม่ได้ติดตั้งในเครื่องของนักเรียนหลายคน)
- ติดตั้ง bower (
npm install -g bower
)
bower install
(ในที่สุดก็จะได้รับการอ้างอิงของเรา)
สามารถลบขั้นตอนที่ 2-5 ได้ทั้งหมดหากเราเพียงตรวจสอบไฟล์ไปยัง repo github ของเรา ขั้นตอนเหล่านั้นน่าจะฟังง่ายสำหรับคุณและฉัน สำหรับนักเรียนที่พวกเขาสับสนมากและพวกเขาต้องการที่จะรู้ว่าทุกขั้นตอนที่ไหนและสิ่งที่พวกเขามีซึ่งอาจเป็นการเรียนรู้ที่ดีอาจเป็นไปได้ แต่ทั้งหมดตั้งฉากกับหัวข้อของชั้นเรียนและลืมไปอย่างรวดเร็ว
มันเพิ่มอีกขั้นตอนหนึ่งเมื่อดึง
มันเกิดขึ้นหลายครั้งที่ฉันทำgit pull origin master
แล้วทดสอบรหัสของฉันและใช้เวลา 5 ถึง 10 นาทีในการจำว่าฉันต้องพิมพ์bower install
เพื่อรับ deps ล่าสุด ฉันแน่ใจว่านั่นแก้ปัญหาได้ง่ายด้วยเบ็ดดึงสคริปต์
มันทำให้การคอมไพล์ยากขึ้น
หาก 2 สาขาแตกต่างกันคุณจะเมา ฉันคิดว่าคุณสามารถพิมพ์ทุกครั้งหลังbower install
git checkout
มากสำหรับความเร็ว
สำหรับข้อดีของคุณฉันคิดว่ามีตัวอย่างที่เคาน์เตอร์ให้กับแต่ละคน
ทำให้กระบวนการแจกจ่ายและนำเข้าโมดูลที่ใช้ร่วมกันโดยเฉพาะการอัพเกรดเวอร์ชั่น
อะไรนะ แน่นอนว่าไม่ใช่เรื่องง่ายที่จะเผยแพร่ การดึงหนึ่ง repo แทนที่จะเป็น 20 นั้นไม่ง่ายและมีแนวโน้มที่จะล้มเหลว ดู # 1 ด้านบน
ลบโมดูลที่ใช้ร่วมกันออกจากการควบคุมแหล่งที่มาเร่งความเร็วและลดความซับซ้อนการเช็คเอาต์ / เช็คอิน (เมื่อคุณมีแอพพลิเคชั่นที่มีไลบรารี่มากกว่า 20 ไลบรารี่นี่เป็นปัจจัยที่แท้จริง)
ตรงกันข้ามหมายความว่าคุณต้องพึ่งพาผู้อื่นเพื่อแก้ไขปัญหา หมายความว่าถ้า deps ของคุณดึงจากแหล่งบุคคลที่สามและคุณต้องแก้ไขข้อผิดพลาดคุณต้องรอให้พวกเขาใช้แพตช์ของคุณ ยิ่งไปกว่านั้นคุณอาจไม่สามารถใช้เวอร์ชันที่คุณต้องการพร้อมกับแพตช์ของคุณคุณต้องใช้เวอร์ชันล่าสุดซึ่งอาจไม่สามารถใช้งานร่วมกับโครงการของคุณได้
คุณสามารถแก้ปัญหานั้นได้โดยการคัดลอก repos แยกต่างหากจากนั้นคุณชี้โครงการของคุณให้เป็นสำเนา จากนั้นคุณใช้การแก้ไขใด ๆ กับสำเนาของคุณ แน่นอนคุณสามารถทำได้ถ้าคุณเพียงแค่คัดลอกแหล่งที่มาลงใน repo ของคุณ
อนุญาตให้ควบคุมหรือรับรู้ถึงสิ่งที่ libs ของบุคคลที่สามที่ใช้ในองค์กรของคุณ
ดูเหมือนว่าจะพิสูจน์ได้ เพียงต้องการที่จะนำ devs ห้องสมุดของบุคคลที่ 3 <ProjectRoot>/3rdparty/<nameOfDep>
ในโฟลเดอร์ของตัวเองภายใต้ เป็นเรื่องง่ายที่จะเห็นว่ามีการใช้ libs ของบุคคลที่สามอย่างไร
ฉันไม่ได้บอกว่าไม่มีผลบวก ทีมสุดท้ายที่ฉันอยู่ได้> 100 คู่กรณี 3 คน ฉันแค่ชี้ให้เห็นว่ามันไม่ใช่ดอกกุหลาบทั้งหมด ฉันกำลังประเมินว่าฉันควรกำจัดความกลัวด้วยความต้องการของฉันหรือไม่