Kann Composer die `composer.lock` generieren, ohne die Pakete tatsächlich herunterzuladen?

Lesezeit: 3 Minuten

Es existiert ein Befehl zum Generieren der composer.lock von einem composer.json?

Etwas ähnliches Rubin bundler : $ bundle lock

  • Nicht dass ich wüsste. Scheint eine seltsame Anforderung zu sein.

    – ceejayoz

    28. Juni 2017 um 14:18 Uhr

  • Ich finde composer update --lock macht dies. “–lock: Aktualisiert nur den Sperrdatei-Hash, um Warnungen zu unterdrücken, dass die Sperrdatei veraltet ist.” oder vielleicht Dies

    – Sevvlor

    28. Juni 2017 um 14:18 Uhr


  • @Sevvlor Ich habe zuerst keine Deps installiert und ausgeführt update --lock es installiert sie..

    – ciaoben

    28. Juni 2017 um 14:23 Uhr

  • Ich denke eigentlich, dass dies ohne Installation oder Update nicht möglich ist. Was wahrscheinlich an seinem Zweck liegt

    – Sevvlor

    28. Juni 2017 um 14:50 Uhr


  • Ich denke wirklich, dass dies sehr nützlich wäre. In meinem Szenario muss ich die Version einer Abhängigkeit in 6 Anwendungen aktualisieren. Da diese Funktion nicht verfügbar ist, muss ich jede Anwendung auschecken und ALLE Abhängigkeiten (70.000 Dateien) installieren, nur um die Sperrdatei zu aktualisieren. Wäre toll, das Kopieren von 70.000 Dateien zu überspringen.

    – bmerigan

    14. September 2018 um 3:13 Uhr


Benutzer-Avatar
Duncanmoo

Wenn Sie keine haben composer.lock

Die Antwort ist “nein”, Sie müssen die Sperrdatei generieren mit:

composer install

Installation ohne composer.lock

Wenn Sie den Befehl noch nie zuvor ausgeführt haben und es auch gibt keine composer.lock-Datei vorhandenComposer löst einfach alle Abhängigkeiten auf, die in Ihrer composer.json-Datei aufgelistet sind und lädt die neueste Version herunter ihrer Dateien in das Vendor-Verzeichnis in Ihrem Projekt.

Quelle: getcomposer.org

NB Mögliches Problem: Ohne die Sperrdatei verwendet Composer die neueste Version der Abhängigkeiten.

Wenn Sie bereits eine haben composer.lock

Wenn Sie bereits eine haben composer.lock und Composer sich darüber beschwert, dass es nicht synchron ist, sehen Sie diese Warnung:

Warnung: Die Sperrdatei entspricht nicht den letzten Änderungen in composer.json. Möglicherweise erhalten Sie veraltete Abhängigkeiten. Führen Sie update aus, um sie zu aktualisieren.

Um dies zu beheben, können Sie die Sperrdatei selbst aktualisieren, ohne die Abhängigkeiten zu aktualisieren. Dadurch wird nur die aktualisiert content-hash in der Sperrdatei:

composer update --lock

Aus dem Composer-Handbuch:

–lock Aktualisiert nur den Sperrdatei-Hash, um Warnungen zu unterdrücken, dass die Sperrdatei veraltet ist.

  • Also kann ich irgendwie einen Dummy erstellen composer.lock Datei und dann die composer update --lock um die gleiche Sperrdatei wie bei zu erhalten composer install?

    – mvorisek

    24. Januar 2020 um 21:54 Uhr

  • Soweit ich sehen kann die Dokumentation Die einzige Möglichkeit, eine composer.lock zu generieren, ist die Ausführung von composer install. Es wäre schön, wenn --dry-run oder ein ähnliches Flag schrieb die Sperrdatei, falls sie fehlt.

    – Duncanmoo

    27. Januar 2020 um 7:54 Uhr

  • direkt im Composer Repo ein Issue dafür erstellt – github.com/composer/composer/issues/8551

    – mvorisek

    27. Januar 2020 um 7:59 Uhr


  • @mvorisek Wenn ich dir Kudos oder ein Kopfgeld geben könnte, würde ich deinen Vorschlag in Composer 2.0 aufnehmen!

    – Duncanmoo

    18. Juni 2020 um 9:39 Uhr

  • nur anmerken composer update --lock wird auch andere Teile der Sperrdatei entsprechend aktualisieren composer.json nicht nur das Haschisch.

    – David Thomas

    25. Juni 2020 um 10:06 Uhr

Sperrdatei schreiben composer.lock ohne Downloadpakete:

composer update --no-install

Composer-Version 2.2.5

1335020cookie-checkKann Composer die `composer.lock` generieren, ohne die Pakete tatsächlich herunterzuladen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy