ผู้แต่ง: จะค้นหาแพ็คเกจเวอร์ชันที่แน่นอนได้อย่างไร


104

สมมติว่าฉันกำลังเขียนห้องสมุด A ซึ่งขึ้นอยู่กับห้องสมุดอื่นเช่นคนเดียว

ฉันต้องการติดตั้งเวอร์ชันล่าสุดของการพูดคนเดียวดังนั้นฉันจึงใส่สิ่งนี้ไว้ใน composer.json:

{
    "require": {
        "monolog/monolog": "*.*.*"
    }
}

$ php composer.phar installจากนั้นผมทำงาน

ฉันคาดหวังว่าจะพบเวอร์ชันที่ติดตั้งภายใน composer.lock แต่ไม่มี:

{
    "hash": "d7bcc4fe544b4ef7561918a8fc6ce009",
    "packages": [
        {
            "package": "monolog/monolog",
            "version": "dev-master",
            "source-reference": "2eb0c0978d290a1c45346a1955188929cb4e5db7"
        }
    ],
    "packages-dev": null,
    "aliases": [

    ],
    "minimum-stability": "dev",
    "stability-flags": [

    ]
}

ฉันต้องการเวอร์ชันเพราะฉันต้องการผูกไลบรารีของฉันกับชุดเวอร์ชันเฉพาะเช่น: หากฉันพบเวอร์ชัน 1.3.5 ใน composer.json ของฉันฉันต้องการใส่สิ่งนี้:

    "require": {
        "monolog/monolog": "1.3.*"
    }

ความคิดใด ๆ ?

คำตอบ:


171

ฉันรู้ว่ามันเป็นคำถามเก่า แต่ ...

composer.phar show

จะแสดงแพ็คเกจที่ติดตั้งไว้ทั้งหมดและข้อมูลเวอร์ชัน (สิ่งนี้แสดงใน Composer เวอร์ชันก่อนหน้าเฉพาะเมื่อใช้-iตัวเลือกที่เลิกใช้แล้วในขณะนี้)

หากต้องการดูรายละเอียดเพิ่มเติมโปรดระบุชื่อแพ็กเกจด้วย:

composer.phar show monolog/monolog

ที่จะแสดงสิ่งต่างๆมากมายรวมถึงแฮช MD5 ที่กำหนด URL ต้นทางประเภทใบอนุญาต ฯลฯ


11
php composer.phar show -aและphp composer.phar show package/nameยังเป็นประโยชน์อีกด้วย
อธิการ

1
สำหรับdev-masterแพ็กเกจสิ่งนี้มีประโยชน์เนื่องจากยังแสดงแฮชคอมมิตด้วย ดังนั้นคุณต้องไปที่ GitHub ค้นหาแฮชคอมมิตตรวจสอบวันที่จากนั้นค้นหาแท็กที่มีวันที่ที่ใกล้ที่สุดก่อนหน้านั้นเพื่อดูว่าคุณใช้ "เวอร์ชัน" อะไรอยู่
andrewtweber

2
นอกจากนี้ยังสามารถพบได้ในไฟล์ composer.lock
Hafiz


14

หากคุณสนใจเพียงเพื่อให้ได้ออกเป็นหมายเลขรุ่นแพคเกจที่ชอบ: 1.7.5หรือ1.x-devหรือdev ต้นแบบ

ข้อมูลโค้ดคอนโซล Linux:

composer show 'monolog/monolog' | grep 'versions' | grep -o -E '\*\ .+' | cut -d' ' -f2 | cut -d',' -f1;

5

ในทางเทคนิคแล้ว "dev-master" คือเวอร์ชันที่แน่นอนที่คุณใช้ที่นั่น เป็นสาขาการพัฒนาและเป็นเวอร์ชันล่าสุด

สถานที่ที่ดีที่สุดในการค้นหาเวอร์ชันที่พร้อมใช้งานสำหรับแพ็คเกจผู้แต่งคือPackagistเนื่องจากเป็นสถานที่ที่นักแต่งเพลงโหลดเวอร์ชันจากตอนที่คุณติดตั้งแพ็คเกจ รุ่นพูดคนเดียวมีการระบุไว้ในhttp://packagist.org/packages/monolog/monolog


2

คุณสามารถใช้ show all โดยเฉพาะเมื่อไม่มีไฟล์ package.json รับแพ็คเกจที่มีจาก packagist.org:

composer show "monolog/monolog" --all

นอกจากนี้คุณสามารถระบุเวอร์ชัน

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