วิธีการติดตั้งสถานะ repo ล่าสุด (untagged) โดยใช้ bower?


163

ฉันมีrepo ขนาดเล็กมากที่ฉันทำงาน dev ทั้งหมดในสาขาหลักและใช้แท็กเป็นจุด "เสถียร" ในประวัติศาสตร์

ฉันเดาโดยค่าเริ่มต้น Bower ดูเหมือนจะดึงรุ่นที่ติดแท็กล่าสุดของ repo ฉันพยายามที่จะได้รับความมุ่งมั่นล่าสุดในสาขาหลัก

ฉันได้ลองใช้สิ่งเหล่านี้ตามลำดับที่เป็นไปได้ทั้งหมด:

bower cache-clean mypackage
bower install mypackage --force-latest
bower install mypackage --force --force-latest
bower install mypackage --force

ฉันได้ลองเพิ่มlatestไฟล์ bower.json ของฉันแล้ว:

"dependencies": {
  "mypackage": "latest"
}

จากนั้นเรียกใช้:

bower update mypackage

ไม่ว่าสิ่งที่ดูเหมือนจะได้รับสถานะที่ติดแท็กล่าสุดเสมอ

ฉันจะได้รับสถานะล่าสุดของโครงการที่ไม่ติดแท็กได้อย่างไร


1
เอกสารฉบับเต็มgithub.com/bower/bower.json-spec
Jaider

คำตอบ:


220

ระบุคอมมิตคอมมิทชัน SHA แทนที่จะเป็นเวอร์ชั่น:

bower install '<git-url>#<git-commit-sha>'

ตัวอย่าง:

bower install 'git://github.com/yeoman/stringify-object.git#d2895fb97d'

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


1
ใช่ฉันอ่านการอภิปรายทั้งหมดเกี่ยวกับสิ่งที่อยู่ในตัวติดตามปัญหา GH เมื่อคืนที่ผ่านมาและติดตั้ง bower # 0.9.3-rc0 คุณเป็นคนที่ถูกต้อง ขอบคุณ!
Johnny

32
ถึงตอนนี้คุณสามารถใช้<git-url>#<branch-name>แทนการเพิ่ม SHA-ID ได้ ดังนั้นคุณสามารถใช้<git-url>#masterเพื่อติดตามสาขาหลัก
MKroehnert

3
ดูเหมือนว่านี่จะใช้งานไม่ได้กับที่เก็บส่วนตัวของฉัน ฉันพยายามระบุรหัสยืนยัน มันส่งคืนข้อผิดพลาด "ร้ายแรง: การอ้างอิงไม่ใช่ต้นไม้:" ดูเหมือนว่ากำลังพยายามค้นหาการแก้ไขใน repo คอมไพล์ของ git
Nilesh

1
ฉันได้รับอันตรายถึงชีวิต: การอ้างอิงไม่ใช่ต้นไม้เช่นกัน ค่อนข้างน่ารำคาญ
เซย์เรีย

คุณจะบังคับให้ติดตั้งเวอร์ชันเก่าใน package.json ได้อย่างไรถ้าคุณมีเวอร์ชั่นที่ใหม่กว่า?
SuperUberDuper

112

ใช่คุณสามารถชี้ไปที่ URL คอมไพล์หรือใช้ชื่อ / repo ชวเลข (สำหรับ repos Github):

bower.json

{
  "name": "bower-test",
  "dependencies": {
    "dpm": "git@github.com:okfn/dpm.git",
    "docker-nmpjs": "terinjokes/docker-npmjs"
  }
}

เพิ่มเติมในเอกสาร

ตามที่ @roi ระบุไว้ในความคิดเห็นคุณสามารถใช้การ--saveตั้งค่าสถานะเพื่อเพิ่มการอ้างอิงโดยอัตโนมัติbower.jsonเช่นbower install terinjokes/docker-npmjs --save


1
และการเลือกรุ่นที่เป็นไปได้?
Tjorriemorrie

12
@Tjorriemorrie ใช่คุณสามารถทำตาม<package>#<revision>.รูปแบบที่ระบุไว้ในเอกสาร ดังนั้นหากต้องการใช้ jQuery เวอร์ชันล่าสุดในสาขา "master" คุณจะต้อง: git@github.com:jquery/jquery.git#masterหรือjquery/jquery#masterสั้น ๆ
Nick Tomlin

6
ฉันจะบอกว่าคุณจะมีโชคที่ดีขึ้นในการใช้ cli เพื่อนำไปไว้ใน bower.json ของคุณ ..... bower ติดตั้ง terinjokes / docker-npmjs --save
Roi

1
นอกจากนี้เรายังสามารถพูดถึงรุ่น / แท็กโดยใช้สัญลักษณ์ # เช่น -xyz-components": "git@github.sample.com:username/reponame.git#0.4.5
Nitin

32

คุณสามารถติดตั้งสาขาใน Bower> 1.0.0:

bower install xxx#foo-branch

รายละเอียดเพิ่มเติมที่https://github.com/bower/bower/issues/107#issuecomment-22352689


5
ชี้แจงสำหรับmasterสาขาคุณจะพิมพ์xxx#master, xxx#master-branchNOT
Andy Fleming

17

หากคุณกำลังใช้ไฟล์ bower.json คุณระบุเวอร์ชันล่าสุดของสาขาด้วยบรรทัดในการขึ้นต่อกันหรือ devDependencies ตามความเหมาะสมสำหรับการกำหนดค่าโครงการของคุณ:

"angular-bootstrap": "git@github.com:angular-ui/bootstrap.git#bootstrap3",

จากนั้นเมื่อคุณเรียกใช้bower installเวอร์ชั่นล่าสุดของสาขานั้นได้มีการติดตั้ง นั่นจะเป็นสาขาbootstrap3ของangular-uiในตัวอย่างนี้


สิ่งนี้ทำงานได้ในท้องถิ่น แต่จะล้มเหลวใน Heroku คุณควรใช้git://github.com/angular-ui/bootstrap.git#bootstrap3แทน
Michael Yagudaev


10

ใช้ bower.json:

"dependencies": {
    "jquery.slimscroll": "latest",
    "jQuery": "1.11",
    "fullPage.js": "git@github.com:overbyte/fullPage.js.git#1d6bbac3d4c3b1d3d7d4096cdbcabd1c3914393f",
}

ที่ไหน

"[library name - in this case a forked version of fullpage.js]" : "[from git clone box in github][#commit number if required - without this you will get latest tagged version]"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.