วิธีติดตั้งแพ็คเกจจาก github repo ใน Yarn


158

เมื่อฉันใช้npm install fancyapps/fancybox#v2.6.1 --saveดังนั้นแพ็คเกจ fancybox ที่แท็ก v2.6.1 จะถูกติดตั้ง ลักษณะการทำงานนี้อธิบายไว้ในเอกสาร

อยากถามว่าทำอย่างไรกับyarn?

คำสั่งนี้เป็นทางเลือกที่ถูกต้องหรือไม่? ในเอกสารเส้นด้ายไม่มีอะไรเกี่ยวกับรูปแบบนี้

yarn add fancyapps/fancybox#v2.6.1

คำตอบ:


231

คุณสามารถเพิ่มที่เก็บ Git ใด ๆ (หรือ tarball) เป็นการอ้างอิงyarnโดยระบุ URL ระยะไกล (ไม่ว่าจะเป็น HTTPS หรือ SSH):

yarn add <git remote url> installs a package from a remote git repository.
yarn add <git remote url>#<branch/commit/tag> installs a package from a remote git repository at specific git branch, git commit or git tag.
yarn add https://my-project.org/package.tgz installs a package from a remote gzipped tarball.

นี่คือตัวอย่างบางส่วน:

yarn add https://github.com/fancyapps/fancybox [remote url]
yarn add ssh://github.com/fancyapps/fancybox#3.0  [branch]
yarn add https://github.com/fancyapps/fancybox#5cda5b529ce3fb6c167a55d42ee5a316e921d95f [commit]

(หมายเหตุ: Fancybox v2.6.1 ไม่มีในเวอร์ชัน Git)

ในการรองรับทั้ง npm และ yarn คุณสามารถใช้ไวยากรณ์ git + url:

git+https://github.com/owner/package.git#commithashortagorbranch
git+ssh://github.com/owner/package.git#commithashortagorbranch

5
แต่ไม่สามารถใช้ git @ xxx style
Jiang YD

หากเพิ่มตัวเลือก SSH ในคำตอบนี้เราอาจสูญเสียตัวเลือกอื่นทั้งหมด
toxaq

อย่าลืมว่าคุณสามารถใช้การกำหนดเวอร์ชันความหมายได้! yarn add https://github.com/fancyapps/fancybox.git#semver:^3.0การดำเนินการนี้จะดึงเวอร์ชันหลักล่าสุดซึ่งปัจจุบันคือ 3.5.7
Elte156

1
การเพิ่มโฟลเดอร์ dist อาจจำเป็นสำหรับการแก้ไขโมดูล
oligopol

2
สำหรับ SSH gitกับพื้นที่เก็บข้อมูลส่วนตัวผมพบว่าเราจำเป็นต้องเพิ่มผู้ใช้ เช่นyarn add ssh://git@github.com/fancyapps/fancybox#3.0
GusDeCooL

25

สำหรับ URL สไตล์ ssh ให้เพิ่ม ssh ก่อน URL:

yarn add ssh://<whatever>@<xxx>#<branch,tag,commit>

9
สิ่งนี้ใช้ได้ผลสำหรับฉันเมื่อyarnปฏิเสธที่จะให้เกียรติgitไวยากรณ์ ssh url ทั่วไป: ทำงาน: yarn add ssh://git@github.com:my-org/my-repo#commit_hashไม่ได้ผล:yarn add git@github.com:my-org/my-repo#commit_hash
ริก

มีวิธีทำไหม แต่จาก package.json พร้อมติดตั้งเส้นด้าย
Kévin Sanchez Lacroix


10

สำหรับที่เก็บส่วนตัวGitHub (หรือที่คล้ายกัน):

yarn add 'ssh://git@github.com:myproject.git#<branch,tag,commit>'
npm install 'ssh://git@github.com:myproject.git#<branch,tag,commit>'

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