จะอัพเดต bower.json ด้วยแพ็คเกจที่ติดตั้งได้อย่างไร


129

ในโครงการของฉันฉันได้ติดตั้งbowerส่วนประกอบโดยไม่บันทึกตัวเลือก ตอนนี้ฉันต้องการอัปเดตเป็นbower.jsonหรือไม่

ฉันจะอัพเดต bower.json ด้วยแพ็คเกจที่ติดตั้งได้อย่างไร


2
การขาดวิธีการหนึ่งขั้นตอนในการทำเช่นนี้ดูเหมือนจะค่อนข้างไม่เพียงพอ เนื่องจากมีคำสั่งถอนการติดตั้งดูเหมือนว่าการทำงานbower installโดยไม่--saveยากและไม่เคยง่ายกว่านี้มาก่อน
Chris

1
หากคุณไม่มีอะไรใน bower.json ให้ลบออกแล้วพิมพ์bower initในคอนโซลของคุณ
Jean-Luc Barat

คำตอบ:


146

เพียงแค่รายการการอ้างอิงของคุณ:

bower list

จากนั้นคุณควรรันคำสั่งติดตั้งทั้งหมดด้วย param '--save' ดังนี้:

bower install bootstrap --save

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


นี่คือคำตอบที่ดี ขอบคุณ!
jessegavin

1
ฉันพบว่าสิ่งนี้มีปัญหากับแพ็คเกจเพียง ~ 10 เนื่องจากมันไม่ชัดเจนว่าเป็นแพคเกจใดที่ถูกดาวน์โหลดเป็นการพึ่งพาของผู้อื่นซึ่งทำให้โบเวอร์ต้องแจ้งหมายเลขเวอร์ชั่น แม้ว่าจะมีคำตอบที่ถูกต้อง แต่ไฟล์ bower.json ที่ได้ก็ไม่ถูกต้องนัก ฉันทำงานกับคำตอบของเซบาสเตียนซึ่งทำงานให้ฉัน
gb2d

การพึ่งพาที่ไม่ได้ประกาศไว้ใน bower.json จะถูกระบุด้วยแท็ก "extraneous" บนคอนโซล
otaviodecampos

135

เคล็ดลับเล็กน้อยถ้าคุณไม่ต้องการเขียนสคริปต์สำหรับสิ่งนั้น:

ก่อนที่จะทำสิ่งใดให้เปลี่ยนชื่อ bower.json ของคุณเป็น bower2.json

จากนั้นคุณสามารถทำ:

$ bower init

(สร้างไฟล์ bower.json โดยอัตโนมัติ)

โปรดทราบว่าคำถามทั้งหมดควรมีการกำหนดค่าล่วงหน้าไว้ล่วงหน้า

เมื่อไหร่จะถามคุณ:

ตั้งค่าคอมโพเนนต์ที่ติดตั้งอยู่ในปัจจุบันเป็นการอ้างอิง บอกว่าใช่,

ตอนนี้คุณมีการอ้างอิงทั้งหมดในไฟล์ bower.json ใหม่ (และคุณสามารถตรวจสอบว่าทุกอย่างเหมาะสมกับ bower2.json เก่า)


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

2
@ ใส่: นั่นจะเป็นรีจิสทรีแพคเกจ bower ( bower.io/search ) HTH
สำหรับ

นี้ไม่ได้ทำงานออกสำหรับฉันเพราะไม่ได้รายการbower.json angular:'1.5.5'นี่เป็นเพราะฉันได้angular-animateติดตั้งและเนื่องจากมันขึ้นอยู่กับangular 1.5.5bower ตัดสินใจที่จะไม่รวมangularไว้ในbower.json(พิจารณาว่ามันจะติดตั้งมันต่อไปเมื่อมีคนทำbower installเพื่อสิ่งนี้bower.json) นี้จะเป็นปัญหาถ้ามีคนลบangular-animateจากbower.jsonซึ่งในกรณีนี้bowerจะไม่ติดตั้งangularมากเกินไปตั้งแต่ไม่ได้ระบุไว้
Akash

35

บิตวิธีที่ลำบากคือการเรียกbower listดูสำหรับแพคเกจที่มีป้ายกำกับภายนอกbower.jsonและเพิ่มเหล่านั้นด้วยตนเองเพื่ออ้างอิงในการ

หากมีแพ็กเกจที่ไม่เกี่ยวข้องจำนวนมากมันอาจจะง่ายกว่าในการแก้ปัญหานี้โดยการเรียกใช้bower initและตอบYesเพื่อ "ตั้งค่าคอมโพเนนต์ที่ติดตั้งในปัจจุบันเป็นการอ้างอิงได้หรือไม่" สิ่งนี้จะใช้เวลาในปัจจุบันของคุณbower.jsonอ่านแล้วสร้างใหม่โดยใช้ข้อมูลจากเก่า ดังนั้นในกรณีที่เหมาะสมที่สุดคุณจะมีไฟล์เดียวกันโดยเพิ่มแพ็คเกจภายนอก

คำเตือน : ประการแรกอาจมีบางสิ่งสูญหายในกระบวนการ (เช่นdevDependecies) ประการที่สองในเวอร์ชั่นล่าสุดของ bower (v1.2.7) นี่จะไม่เก็บข้อมูลแพ็คเกจปัจจุบัน! ฉันรู้สึกว่ามันเป็นแมลง อย่างไรก็ตามคุณสามารถบันทึกไฟล์เก่าและ (ด้วยตนเอง) รวมกับไฟล์ที่สร้างขึ้น

นอกจากนี้คุณควรถามตัวเลือกหรือบางสิ่งบางอย่างด้วยการเปิดปัญหา bowerเช่นนี้จะได้รับการต้อนรับจากนักพัฒนาหลายคน


3
หมายเหตุ: bower 1.3.3 เก็บรักษาข้อมูลแพ็คเกจปัจจุบัน
Bill Keller

27

คุณสามารถใช้bower-check-updates (คุณต้องติดตั้ง node.js บนเครื่องของคุณ):

bower-check-updates เป็นยูทิลิตี้ที่ปรับ bower.json โดยอัตโนมัติด้วยการอ้างอิงทั้งหมดล่าสุด

bower-check-updates - เป็นทางแยกของการตรวจสอบการอัปเดต npmดังนั้นมันจึงเหมือนกันทั้งหมด แต่เป็นการอัปเดตbower.jsonแทนที่จะเป็นpackage.json

npm install -g bower-check-updates
bower-check-updates -u
bower install 

สิ่งนี้จะติดตั้งbower-check-updatesทั่วโลกดังนั้นคุณสามารถเปิดใช้งานได้จากทุกที่

ป.ล. สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบการอัปเดต npm โปรดดูหัวข้อนี้


อาจจะbower install
ÁmonTamás

@ ÁmonTamás bower installไม่ได้อัปเดต bower.json
Sergei Panfilov

5
ผู้เขียน bower-check-updates ได้คัดค้านโครงการที่สนับสนุน npm-check-updates ซึ่งได้เพิ่มการสนับสนุนสำหรับการอัปเดต bower.json
congusbongus

2

bower install [package_name] --saveถ้ามีไม่ว่าแพคเกจซุ้มมากมายที่คุณได้ติดตั้งให้ลองเขียน นี่เป็นเพียงการอัปเดตไฟล์ bower.json ของคุณ


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