ควร bower_components gitignored?


157

มันจะเป็นการดีหรือไม่ที่จะเก็บเฉพาะbower.jsonไฟล์และ gitignore ในไดเร็กตอรี่ทั้งหมดbower_components?


ฉันเพิ่งสังเกตเห็นตำราอาหารอย่างเป็นทางการของ Symfonyซึ่งจริง ๆ แล้วตอบคำถามตรงนี้โดยอ้างว่า "ในปัจจุบันคุณน่าจะส่งมอบสินทรัพย์ที่ดาวน์โหลดโดย Bower แทนที่จะเพิ่มไดเรกทอรีลงใน.gitignoreไฟล์ของคุณ"
Pierre de LESPINAY

คำตอบ:


149

หน้าซุ้มอย่างเป็นทางการกล่าวว่า

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

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


1
ขอบคุณสำหรับบทความที่น่าสนใจนี้ ดังนั้นสำหรับตอนนี้เรายังไม่มี "ไฟล์ล็อค" ที่เทียบเท่ากับการหยุดรุ่น
Pierre de LESPINAY

1
@PierredeLESPINAY สำหรับระดับบนสุดเท่านั้น สิ่งที่ขาดหายไปนั้นเทียบเท่ากับคุณสมบัติการลดขนาด npm
passy

3
พวกเขายังพูดแบบนี้ในบล็อกโพสต์ของพวกเขาด้วย "ในที่สุดตัวเลือกว่าจะเช็คอินหรือไม่ / bower_components ของคุณทั้งหมดขึ้นอยู่กับคุณ ... "
Krishnaraj

3
เหตุผลที่อยู่เบื้องหลังการตรวจสอบพวกเขาคือบางวันห้องสมุดอาจหายไปจากอินเทอร์เน็ตหรืออาจเป็นช่วงเวลาที่ทำให้เกิดความล้มเหลวในการสร้าง ในฐานะผู้ใช้ Maven / Gradle ฉันไม่เคยคิดถึงการพึ่งพา
Krishnaraj

7
คำแนะนำในหน้า Bower อย่างเป็นทางการเพื่อตรวจสอบแพ็คเกจที่ติดตั้งในการควบคุมแหล่งที่มาถูกลบออกในปี 2014: github.com/bower/bower.github.io/commit/…
ผู้ใช้

52

.gitignoreไฟล์ที่สร้างขึ้นใหม่Yeomanโครงการ AngularJS มี bower_components (และ node_modules) ของ บริษัท จดทะเบียนที่จะละเลย (ถ้าคุณไม่ทราบว่าเสรีชนมันเป็นเครื่องมือบนเว็บนั่งร้านที่มีชื่อเสียงมากสำหรับ webapps ที่ทันสมัยเพื่อให้เป็นที่ดีพอสำหรับฉัน!):

.gitignore

node_modules
dist
.tmp
.sass-cache
bower_components

9

มีเวลา & สถานที่สำหรับทั้งสองวิธี สำหรับ Yeoman มันเหมาะสมที่จะพึ่งพา bower.json เพราะมันเป็นเครื่องมือใน toolchain และจำเป็นต้องใช้ชีวิตและการหายใจกับระบบนิเวศป่าไม้ สำหรับแอปพลิเคชันเว็บที่สามารถปรับใช้งานได้โดยทั่วไปถือว่าเป็นการปฏิบัติที่ดีที่จะใช้การพึ่งพาและควบคุมได้ดีกว่า

นี่เป็นบทความที่ดีที่ฉันชอบที่พูดถึงเรื่องนี้


6

หากคุณใช้ Grunt และ Node กับ Bower คุณควรใส่bower_componentsใน. gitignore ของคุณเพราะเมื่อคุณเรียกใช้grunt เสิร์ฟหรือgrunt buildมันจะดูแลการพึ่งพาของคุณฉันมั่นใจว่านั่นเป็นสาเหตุที่ Yeoman พวกเขาเพิ่มมันเข้าไป . gitignore


5

ตัวสร้างYeomanเติมไฟล์. gitignoreไว้ล่วงหน้าด้วย bower_components แต่ก็เต็มไปด้วยไดเรกทอรีอื่นที่ฉันคิดว่าจะต้องใช้สำหรับแอปสุดท้าย (เช่น www) ดังนั้นฉันจึงทำการวิจัยบางอย่าง

ฉันค้นพบว่า www / index.html เป็นแอพ / index.html เวอร์ชันย่อ ไดเรกทอรีแอพและเนื้อหา (รวมถึง bower_components) มีไฟล์ต้นฉบับที่จำเป็นสำหรับไดเรกทอรีส่งออก (www) คุณยอมรับไดเรกทอรีแหล่งที่มาลงในการควบคุมแหล่งที่มา (เช่น git) แต่ไม่ได้สร้างไฟล์ (เช่น www) ผู้จัดการแพ็กเกจเช่น bower และ npm มีไว้เพื่อใช้ในระหว่างขั้นตอนการสร้าง / การสร้างและสิ่งประดิษฐ์ของพวกเขาไม่ได้หมายถึงการตรวจสอบในการควบคุมแหล่งที่มา

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


0

มันเป็นสิ่งที่ดีที่จะไม่สนใจ/bower_componentsdir และตรวจสอบในเพียงbower.jsonและbower-locker.bower.jsonไฟล์ถ้าคุณสร้างแฟ้มล็อคใช้ซุ้มตู้เขียนโดยShawn Lonas

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

เรียกใช้คำสั่งต่อไปนี้เพื่อให้บรรลุ:

npm install bower-locker -g

หรือ

yarn global add bower-locker

จากนั้นสร้างไฟล์ล็อคตามไฟล์ที่มีอยู่bower.jsonโดยเรียกใช้:

bower-locker lock

bower.jsonไฟล์ต้นฉบับจะถูกเปลี่ยนชื่อเป็นbower-locker.bower.json

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